思路
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210601140333682.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDM4NjkzOQ==,size_16,color_FFFFFF,t_70)
对于root节点,只要让root.left.next = root.right即可
。但要让节点5和节点6相连,必须从各自的父亲入手,因此递归函数需要传入两个参数,设为node1和node2,连接node1和node2需要三步
1、node1与node2相连:node1.next = node2
2、各自的左右孩子相连:node1.left.next = node1.right,node2.left.next = node2
3、node1的右孩子与node2的左孩子相连:node1.right.next = node2.left
递归代码
var connect = function(root) {
if(root==null) return null;
if(root.left!=null){
connectTwoNode(root.left, root.right);
}
return root;
};
var connectTwoNode= function(node1, node2) {
if(node1!=null){
node1.next = node2;
connectTwoNode(node1.left, node1.right);
if(node2!=null){
connectTwoNode(node2.left, node2.right);
connectTwoNode(node1.right, node2.left);
}
}
}