树-leetcode#116-填充每个节点的下一个右侧节点指针
程序员文章站
2022-03-03 11:01:05
...
class Solution {
public:
Node* connect(Node* root) {
if(root==NULL) return root;
queue<Node*> q;
q.push(root);
while(!q.empty()){
int nextlevel = q.size();
Node * pre=NULL;
Node * cur=NULL;
while(nextlevel>0){
Node * cur = q.front();
cur->next=NULL;
if(pre!=NULL) pre->next=cur;
q.pop();
if(cur->left) q.push(cur->left);
if(cur->right) q.push(cur->right);
pre = cur;
nextlevel--;
}
}
return root;
}
};
层次遍历,每层需要处理的节点个数就是队列的长度,循环,把前一个的next指向后一个,这里不要忘记,cur的next先置为空。
上一篇: MySQL窗口函数的具体使用
推荐阅读
-
剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
-
剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
-
填充每个节点的下一个右侧节点指针 II
-
117. 填充每个节点的下一个右侧节点指针 II
-
【C语言 LeetCode 116】填充每个节点的下一个右侧节点指针
-
leetcode116. 填充每个节点的下一个右侧节点指针
-
leetcode117. 填充每个节点的下一个右侧节点指针 II
-
leetcode116. 填充每个节点的下一个右侧节点指针/层次遍历
-
leetcode116. 填充每个节点的下一个右侧节点指针
-
【leetcode】117. 填充每个节点的下一个右侧节点指针 II(populating-next-right-pointers-in-each-node-ii)(bfs)[中等]