class Solution:
def processChild(self, childNode, prev, leftmost):
if childNode: #没有子节点的情况下停止
if prev: #下层的上一次访问的节点,如果
prev.next = childNode
else: #同一层没有可以向右移动的下层节点,继续向下一层移动
leftmost = childNode
prev = childNode #移向同一层的下一个节点
return prev, leftmost
def connect(self, root):
if not root: #空树
return root
leftmost = root #标记最左侧节点
while leftmost:
prev, curr = None, leftmost
leftmost = None
while curr:
prev, leftmost = self.processChild(curr.left, prev, leftmost)
prev, leftmost = self.processChild(curr.right, prev, leftmost)
curr = curr.next #上层指针节点右移
return root
树-117. 填充每个节点的下一个右侧节点指针 II-PYTHON
最新推荐文章于 2020-03-29 00:07:43 发布