Enter a binary search tree, the binary search tree converted into a doubly linked list sorted. Requirements can not create any new node, a node can only adjust the pointer pointing to the book.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def Convert(self, pRootOfTree):
if pRootOfTree == None:
return None
def find_right(node):
while node.right:
node = node.right
return node
leftNode = self.Convert(pRootOfTree.left)
rightNode = self.Convert(pRootOfTree.right)
retNode = leftNode
if leftNode:
leftNode = find_right(leftNode)
else:
retNode =pRootOfTree
pRootOfTree.left=leftNode
pRootOfTree.right = rightNode
if leftNode!=None:
leftNode.right=pRootOfTree
if rightNode!=None:
rightNode.left = pRootOfTree
return retNode