zoukankan      html  css  js  c++  java
  • 填充每一个节点的下一个右侧节点指针

    题目链接:https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node
    题目描述:
    给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:

    struct Node {
    int val;
    Node *left;
    Node *right;
    Node *next;
    }
    填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。

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

    进阶:
    你只能使用常量级额外空间。
    使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。

    题解:

    
    class Solution {
    public:
        Node* connect(Node* root) {
            if(root == NULL)
                return NULL;
            if(root->left != NULL)
            {
                root->left->next = root->right;
                if(root->next != NULL)
                    root->right->next = root->next->left;
            }
            connect(root->left);
            connect(root->right);
            return root;
        }
    };
    
    
  • 相关阅读:
    每日博客
    每日博客
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
    今日收获
  • 原文地址:https://www.cnblogs.com/ZigHello/p/15464532.html
Copyright © 2011-2022 走看看