Populating Next Right Pointers in Each Node

问题:将二叉树的所有结点指向他的右边的一个结点
分析:对于每一个结点来说,其操作都是一样的,除了他的左儿子指向右儿子外,其左儿子的全部右后辈均指向其右儿子的全部左后辈

/**
 * 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 ;
        TreeLinkNode *left,*right;
        left=root->left,right=root->right;
        while(left && right)
        {
            left->next=right;
            left=left->right;
            right=right->left;
        }
        connect(root->left);
        connect(root->right);
    }
};

  

posted @ 2014-08-03 09:53  calmound  阅读(133)  评论(0编辑  收藏  举报