zoukankan      html  css  js  c++  java
  • populating-next-right-pointers-in-each-node-ii leetcode C++

    Follow up for problem "Populating Next Right Pointers in Each Node".

    What if the given tree could be any binary tree? Would your previous solution still work?

    Note:

    You may only use constant extra space.

    For example, Given the following binary tree,

         1
       /  
      2    3
     /     
    4   5    7
    

    After calling your function, the tree should look like:

         1 -> NULL
       /  
      2 -> 3 -> NULL
     /     
    4-> 5 -> 7 -> NULL

    C++

    /**
     * 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){
                TreeLinkNode L(-1);
                TreeLinkNode *f;
                TreeLinkNode *p;
                f = &L;
                p = root;
                while(p){
                    if(p->left != NULL){
                        f->next = p->left;
                        f = f->next;
                    }
                    if(p->right != NULL){
                        f->next = p->right;
                        f = f->next;
                    }
                    p = p->next;
                }
                root = L.next;
            }
        }
    };
  • 相关阅读:
    Java学习十一天
    Java学习第十天
    Java学习第九天
    Java学习第八天
    Java学习第七天
    Java学习第六天
    Java学习第五天
    Java学习第四天
    Java第三天
    京峰教育-笔记
  • 原文地址:https://www.cnblogs.com/vercont/p/10210258.html
Copyright © 2011-2022 走看看