378 - Convert Binary Search Tree to Doubly Linked List
    Written on October 27, 2015
    
    
    
    
    
    Tweet
  Convert a binary search tree to doubly linked list with in-order traversal.
class Solution:
    """
    @param: root: The root of tree
    @return: the head of doubly list node
    """
    def bstToDoublyList(self, root):
        # write your code here
        if not root:
            return
        prev = dummy = DoublyListNode(0)
        stack = []
        while stack or root:
            if root:
                stack.append(root)
                root = root.left
            else:
                root = stack.pop()
                new_node = DoublyListNode(root.val)
                prev.next = new_node
                new_node.prev = prev
                prev = new_node
                root = root.right
        dummy.next.prev = None
        return dummy.next