面试题 17.12. BiNode
最后更新于
这有帮助吗?
这有帮助吗?
cur.left = None
pre.right = cur
pre = curself.pre = None
def dfs(root):
dfs(root.left)
# 上面的指针改变逻辑写到这里
self.pre = root
dfs(root.right)
self.pre = self.ans = None
def dfs(root):
if not root: return
dfs(root.left)
root.left = None
if self.pre: self.pre.right = root
# 当第一次执行到下面这一行代码,恰好是在最左下角,此时 self.pre = None,其他任何时候 self.pre 都不是 None。
if self.pre is None: self.ans = root
self.pre = root
dfs(root.right)class Solution:
def convertBiNode(self, root: TreeNode) -> TreeNode:
self.pre = self.ans = None
def dfs(root):
if not root: return
dfs(root.left)
root.left = None
if self.pre: self.pre.right = root
if self.pre is None: self.ans = root
self.pre = root
dfs(root.right)
dfs(root)
return self.ans