题解 | #填充每个节点指向最右节点的next指针#

填充每个节点指向最右节点的next指针

https://www.nowcoder.com/practice/fdbd05d647084fcf9be78444e231998b

/**
 * Definition for binary tree with next pointer.
 * struct TreeLinkNode {
 *  int val;
 *  TreeLinkNode *left, *right, *next;
 *  TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
 * };
 */
#include <cstddef>
#include <queue>
class Solution {
  public:
    void connect(TreeLinkNode* root) {
        if (root == nullptr)
            return ;
        queue<TreeLinkNode*> qu;
        queue<TreeLinkNode*> jl;
        qu.push(root);
        bool hou = false;
        while (qu.size() > 0 || jl.size() > 0) {
            if (hou == false) {
                TreeLinkNode* t;
                t = qu.front();
                qu.pop();
                if (qu.size() == 0) {
                    t->next = nullptr;
                    hou = true;
                } else
                    t->next = qu.front();
                if (t->left != nullptr) {

                    jl.push(t->left);
                }
                if (t->right != nullptr) {

                    jl.push(t->right);
                }
            } else {
                TreeLinkNode* t;
                t = jl.front();
                jl.pop();
                if (jl.size() == 0) {
                    t->next = nullptr;
                    hou = false;
                } else
                    t->next = jl.front();
                if (t->left != nullptr) {

                    qu.push(t->left);
                }
                if (t->right != nullptr) {

                    qu.push(t->right);
                }
            }

        }
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 18:13
点赞 评论 收藏
分享
完美的潜伏者许愿简历...:隐藏信息被你提取出来了,暗示,这就是暗示
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务