/*
// Definition for a Node.
class Node {
public int val;
public Node left;
public Node right;
public Node next;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, Node _left, Node _right, Node _next) {
val = _val;
left = _left;
right = _right;
next = _next;
}
};
*/
class Solution {
public Node connect(Node root) {
if(root==null||root.left==null){
return root;
}
root.left.next=root.right;
connect(root.left);
connect(root.right);
return root;
}
}
这样的话没有共同父节点的元素就不能相连了,例如上图节点5和节点6。所以可以使用两个参数,实现没有共同节点的元素之间的连接。
/*
// Definition for a Node.
class Node {
public int val;
public Node left;
public Node right;
public Node next;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, Node _left, Node _right, Node _next) {
val = _val;
left = _left;
right = _right;
next = _next;
}
};
*/
class Solution {
public Node connect(Node root) {
if(root==null||root.left==null){
return root;
}
connectTwoNode(root.left,root.right);
return root;
}
public void connectTwoNode(Node leftNode,Node rightNode){
if(leftNode==null||rightNode==null){
return;
}
leftNode.next=rightNode;
connectTwoNode(leftNode.left,leftNode.right);
connectTwoNode(rightNode.left,rightNode.right);
connectTwoNode(leftNode.right,rightNode.left);
}
}