leetcode116 Populating Next Right Pointers in Each Node

 1 """
 2 首先理解题意,因为要找结点的下个指针
 3 不能从根节点来看。要从第二层看来判断
 4 找到规律自然用递归写法
 5 """
 6 class Node:
 7     def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):
 8         self.val = val
 9         self.left = left
10         self.right = right
11         self.next = next
12 
13 class Solution:
14     def connect(self, root: 'Node') -> 'Node':
15         if not root:
16             return None
17         if root.left:
18             root.left.next = root.right
19         if root.right:
20             root.right.next = root.next.left if root.next else None #!!!从第二层来判断
21         self.connect(root.left)
22         self.connect(root.right)
23         return root

 

posted @ 2020-02-28 00:44  yawenw  阅读(97)  评论(0编辑  收藏  举报