|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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的类型也是一个根节点吗,也有左孩子右孩子 |
|