91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++二叉搜索樹與雙向鏈表(劍指Offer精簡版)

發布時間:2020-03-03 23:10:05 來源:網絡 閱讀:249 作者:夢T醒 欄目:編程語言

C++二叉搜索樹與雙向鏈表(劍指Offer精簡版)題目:輸入一棵二叉搜索樹,將該二叉搜素樹轉換成一個排序的雙向鏈表。
二叉樹節點定義如下:

struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};

解題思路:
由于通過中序排序可以轉化為雙向鏈表,因此,通過中序遍歷的方法(左根右)的遞歸方法可以解決問題,解決完之后,pList節點指向雙向鏈表的尾結點,pList節點需要通過遍歷,返回到頭節點,同樣,我們也可以通過逆向中序遍歷的方法之間完成,代碼如下:

class Solution {
public:
    TreeNode* Convert(TreeNode* pRootOfTree)
    {
        TreeNode* pList=nullptr;//雙向鏈表的頭節點
        Convert(pRootOfTree,pList);
        return pList;
    }
    void Convert(TreeNode* pRootOfTree,TreeNode*& pList)
    {
        if(pRootOfTree==nullptr)//遞歸的出口
            return;
        if(pRootOfTree->right!=nullptr)//遞歸處理右子樹
            Convert(pRootOfTree->right,pList);
        pRootOfTree->right=pList;//right相當于pNext
        if (pList != nullptr)
            pList->left = pRootOfTree;//left相當于pPre
        pList = pRootOfTree;//pList節點從尾結點依次移動到頭節點
        if (pRootOfTree->left != nullptr)//遞歸處理左子樹
            Convert(pRootOfTree->left, pList);
    }
};
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

眉山市| 余姚市| 镇江市| 安乡县| 京山县| 沭阳县| 新宾| 上饶市| 长武县| 遂平县| 澎湖县| 高要市| 平安县| 大安市| 曲松县| 疏勒县| 陈巴尔虎旗| 宜阳县| 全南县| 黄梅县| 嵊泗县| 根河市| 石柱| 若尔盖县| 北辰区| 澳门| 无为县| 辰溪县| 庆安县| 三河市| 施秉县| 普兰店市| 马关县| 象山县| 平昌县| 鹤岗市| 江陵县| 油尖旺区| 天峨县| 宜兰县| 辽宁省|