标签:
Given a binary tree
struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }
Populate each next pointer to point to its next right node. If there is no next right node, the next pointer should be set to NULL
.
Initially, all next pointers are set to NULL
.
Note:
For example,
Given the following perfect binary tree,
1 / 2 3 / \ / 4 5 6 7
After calling your function, the tree should look like:
1 -> NULL / 2 -> 3 -> NULL / \ / 4->5->6->7 -> NULL
/**
* 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) {}
* };
*/
class Solution {
public:
void connect(TreeLinkNode *root) {
while (root) {
if (!root->left) {
return;
}
for (TreeLinkNode *p = root; p != NULL; p = p->next) {
p->left->next = p->right;
p->right->next = p->next ? p->next->left : NULL;
}
root = root->left;
}
}
};
[LeetCode] 116 - Populating Next Right Pointers in Each Node
标签:
原文地址:http://www.cnblogs.com/shoemaker/p/4853206.html