填充每个节点指向最右节点的next指针
没有做出来,所有记录一下,答案来自 牛客网用户id : 华科不平凡。
题目:
给定一个二叉树
struct TreeLinkNode {
TreeLinkNode *left;
TreeLinkNode *right;
TreeLinkNode *next;
}
填充所有节点的next指针,指向最接近它的同一层右边节点。如果没有同一层没有右边的节点,则应该将next指针设置为NULL。
初始时,所有的next指针都为NULL
注意:
1.你只能使用常量级的额外内存空间
2.可以假设给出的二叉树是一个完美的二叉树(即,所有叶子节点都位于同一层,而且每个父节点都有两个孩子节点)。
class Solution {
public:
void connect(TreeLinkNode *root) {
if (!root)
return;
TreeLinkNode *left = root;
while (left->left) {
TreeLinkNode *p = left;
while (p) {
p->left->next = p->right;
if (p->next)
p->right->next = p->next->left;
p = p->next;
}
left = left->left;
}
}
};