中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

二叉搜索樹與雙向鏈表

發布時間: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

嘉义市| 当雄县| 肃宁县| 山阴县| 克什克腾旗| 藁城市| 磐安县| 葫芦岛市| 峨眉山市| 柳州市| 屏山县| 鱼台县| 建德市| 桃园县| 称多县| 望谟县| 商水县| 三明市| 金塔县| 余庆县| 瑞安市| 湘潭市| 醴陵市| 邢台市| 布尔津县| 海口市| 腾冲县| 南川市| 翁牛特旗| 资中县| 安顺市| 金秀| 卓资县| 灵武市| 安陆市| 开远市| 本溪| 牟定县| 道孚县| 司法| 长汀县|