马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def increasingBST(self, root):
self.res = []
self.inOrder(root)
if not self.res:
return
dummy = TreeNode(-1)
cur = dummy
for node in self.res:
node.left = node.right = None
cur.right = node
cur = cur.right
return dummy.right
def inOrder(self, root):
if not root:
return
self.inOrder(root.left)
self.res.append(root)
self.inOrder(root.right)
如上,要按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点,算法如上。
其中这行代码不理解,for node in self.res:
node.left = node.right = None
cur.right = node
cur = cur.right
return dummy.right
self.res中的序列不是整型吗?为什么会有左孩子和右孩子,还有哑变量dummy的类型也是一个根节点吗,也有左孩子右孩子 |