描述
该题来自于力扣第117题
分析
对比力扣第116题的区别在于,该题不再是完美二叉树了,首先看下之前的做法:
1. root.left.next = root.right
2. root.right.next = root.next.left
对于第一步来说,如果root
依然有左右节点,那么一模一样,否则不用连接;
对于第二步,本质是A.next = B
,如果root.right
存在,那么A
就是root.right
,否则看root.left
是否存在,存在的话,就是root.left
,要不然就不用连接,B
的取值就要考虑一些情况,如果root.next
没有left,right
那么就找root.next.next
,直到找到含有left,right
的结点node
,如果找到了这样的node
,显然以node.left
为最高优先级,即node.left
存在,则B = node.left
,否则B = node.right
。找到了A,B
,只需令A.next = B
就好。
代码
1 | class Solution: |