【leetcode 114. 二叉樹展開爲鏈表】解題報告

 

思路:遞歸,將左子樹變成單鏈表形式,再將右子樹變成單鏈表形式,最後將左子樹單鏈表的末端鏈接到右子樹單鏈表表頭,將根節點的左孩子置空spa

    void flatten(TreeNode* root) {
        if (root==nullptr) return;
        flatten(root->left);    // 將左子樹變成單鏈表形式
        flatten(root->right);   // 將右子樹變成單鏈表形式
        if (root->left) // 將左子樹單鏈表的末端鏈接到右子樹單鏈表表頭
        {
            TreeNode* p=root->left;
            while(p->right) p=p->right;
            p->right=root->right;
            root->right=root->left;
            root->left=nullptr;
        }
    }
相關文章
相關標籤/搜索