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

溫馨提示×

溫馨提示×

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

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

二叉搜索樹與雙向鏈表

發布時間:2020-07-20 17:12:06 來源:網絡 閱讀:248 作者:qdqade 欄目:開發技術

輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。


二叉搜索樹的中序遍歷即是有序的,中序遍歷同時轉變即可,

轉換左子樹,左子樹最右邊,為左子樹有序的最后一個節點為lastnode,

root->left=lastnode

如果lastnode非空,lastnode->right=root;

右樹非空,轉換之。


最后,原根節點指向的是序列中間,需要返回鏈表頭,可以往前遍歷即可。


 void ConvertCore(TreeNode *root,TreeNode *&lastnode){

        if(root==NULL)

            return;

        

        if(root->left)

            ConvertCore(root->left,lastnode);

        

        root->left=lastnode;

        if(lastnode!=NULL)

            lastnode->right=root;

        lastnode=root;

        

        if(root->right)

        ConvertCore(root->right,lastnode);

    }

    TreeNode* Convert(TreeNode* pRootOfTree)

    {

        if(pRootOfTree==NULL)

            return NULL;

        TreeNode *lastnode=NULL;

        ConvertCore(pRootOfTree,lastnode);

        

        while(lastnode->left){

            lastnode=lastnode->left;

        }

        return lastnode;

    }


向AI問一下細節

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

AI

勃利县| 张掖市| 山阳县| 万载县| 大庆市| 无棣县| 云南省| 阳东县| 隆昌县| 秦安县| 城口县| 蕲春县| 长岭县| 井研县| 山西省| 宁蒗| 和政县| 故城县| 泰兴市| 安康市| 南宁市| 邢台市| 衡山县| 肇州县| 钟山县| 斗六市| 麻城市| 天柱县| 南皮县| 淮南市| 陆河县| 晋宁县| 自治县| 台北市| 丰宁| 元氏县| 盐山县| 苏尼特右旗| 女性| 额敏县| 息烽县|