题目描述:
给定一个完全二叉树,找到每个节点在这一层右边的点。
思路:
直接DFS。将每个点左儿子向右全部指向右儿子向左上对应的节点。
代码实现:
/**
* 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) {
if(root==NULL) return ;
connect(root->left);
connect(root->right);
for(TreeLinkNode *nl=root->left, *nr=root->right; nl; nl->next=nr, nl=nl->right, nr=nr->left);
}
};