zoukankan      html  css  js  c++  java
  • LeetCode "Flatten Binary Tree to Linked List"

    Really interesting BST manipulation problem!

    class Solution {
    public:
        TreeNode *findConn(TreeNode *p)
        {
            TreeNode *pTmp = p;
            while (pTmp->right)
            {
                pTmp = pTmp->right;
            }
            return pTmp;
        }
        void flatten(TreeNode *root) {
            if (!root) return;
            TreeNode *p = root;
            while (p)
            {
                if (!p->left && !p->right) break;    //    end
                if (p->left && !p->right)
                {
                    p->right = p->left;
                    p->left = NULL;
                }
                if (p->left && p->right)
                {
                    TreeNode *pTmpRight = p->right;
                    TreeNode *pConn = findConn(p->left);
                    p->right = p->left;
                    pConn->right = pTmpRight;
                    p->left = NULL;
                }
                p = p->right;
            }        
        }
    };
    View Code
  • 相关阅读:
    bzoj3302
    bzoj1264
    听风
    bzoj5073
    bzoj2144
    bzoj1263
    bzoj3653
    Docker 入门 2 镜像基本操作
    Docker 入门 1 准备 Docker 环境
    Docker Hub 镜像加速
  • 原文地址:https://www.cnblogs.com/tonix/p/3860315.html
Copyright © 2011-2022 走看看