每一个树右边的指针

      1
    /   \
   2     3
  /\     /\
 4  5   6  7                     root random       root->right    random->left          root random  

      1 -> NULL                    1    NULL
    /   \                          
   2  -> 3 -> NULL                 2    3            3            NULL           
  /\     /\
 4->5 ->6 ->7 -> NULL              4    5            5            6                     6     7
                                               
                                   NULL NULL         NULL         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) {
                if(root == NULL)
                {
                    return ;
                }
                connect_node(root,NULL);

                    }
            void connect_node(TreeLinkNode *root,TreeLinkNode *random)
            {
                if(root == NULL)
                {
                    return ;
                }
                root->next = random;    /*连接指针*/
                connect_node(root->left,root->right);    /*向下走一层*/
                if(random)
                {
                    connect_node(root->right,random->left);   /*递归到底层后,连接root->right和random->left   ->   \ /*/   
                }
                else
                {
                    connect_node(root->right,NULL);
                }
            }
};

你可能感兴趣的:(每一个树右边的指针)