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
  • 相关阅读:
    setsid
    dup
    信号量
    linux标准输入输出
    linux守护进程范例
    c++字符串操作
    浏览器缓存
    bfc
    苹果手机自制铃声
    vue-cli 源码解读
  • 原文地址:https://www.cnblogs.com/tonix/p/3860315.html
Copyright © 2011-2022 走看看