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

120 阅读1分钟

题目描述:给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:

struct Node {
  int val;
  Node *left;
  Node *right;
  Node *next;
}

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。

初始状态下,所有 next 指针都被设置为 NULL。

image.png

var connect = function(root) {
    if(!root) return null
    connectTwoNode(root.left, root.right)
    return root

    // 创建一个函数把相邻的节点连起来
    function connectTwoNode(node1,node2){
        if(node1 === null || node2 === null){
            return
        }
        node1.next = node2
        // 相同父级节点的连接
        connectTwoNode(node1.left, node1.right)
        connectTwoNode(node2.left, node2.right)
        // 不同父级节点的连接
        connectTwoNode(node1.right, node2.left)
    }
};