描述
该题来自于力扣第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: |