【改造先序遍历】 116 . 填充每个节点的下一个右侧节点指针

116 . 填充每个节点的下一个右侧节点指针

解题思路

  • 改造二叉树的线序遍历
  • 针对每一个节点需要做的事情是nod1.next = node2;
  • 然后递归相邻两个节点
/*
// 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 {
    // 遍历框架
    void traverse(Node node1,Node node2){
        if(node1 == null || node2 == null){
            return;
        }

        // 针对一个节点
        node1.next = node2;


        traverse(node1.left,node1.right);
        traverse(node2.left,node2.right);
        traverse(node1.right,node2.left);

    }

    public Node connect(Node root) {
        // 二叉树的遍历思路

        if(root == null){
            return null;
        }

        traverse(root.left,root.right);

        return root;



    }
}

你可能感兴趣的:(#,Leetcode,java,算法,开发语言)