您的位置:首页 > 其它

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

2019-10-09 20:25 911 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/crazytom1988/article/details/102469202

https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node-ii/ (通用解)

[code]class Solution {
public:
Node* connect(Node* root) {
Node *cur = root;
while(cur)
{
Node dummy;
dummy.next = NULL;
Node *tail = &dummy;
//遍历当前层
while(cur)
{
if (cur->left)
{
tail->next = cur->left;
tail = tail->next;
}
if (cur->right)
{
tail->next = cur->right;
tail = tail->next;
}
cur = cur->next;
}
//进入下一层
cur = dummy.next;
}

return root;
}
};

https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/ (完美二叉树)

[code]class Solution {
public:
Node* connect(Node* root) {
if (root == NULL) return NULL;
Node *start = root;
Node *cur = NULL;
while(start->left)
{
cur = start;
while(cur)
{
cur->left->next = cur->right;
if (cur->next) cur->right->next = cur->next->left;
cur = cur->next;
}
start = start->left;
}

return root;
}
};

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐