劍指offer JZ26 二叉搜尋樹與雙向鍊錶

2021-10-09 04:45:43 字數 452 閱讀 3432

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。

思路:

二叉搜尋樹(bst):若二叉搜尋樹根節點的左子樹不為空,則根節點的左子樹所有節點值均小於根節點值,若根節點的右子樹不為空,則根節點的右子樹所有節點值均大於根節點;二叉搜尋樹的中序遍歷就是乙個公升序序列。

利用二叉搜尋樹的中序遍歷是乙個公升序序列,每次訪問根節點的時候只需記錄前乙個訪問的節點並修改對應指標即可,需要注意傳參時記錄前乙個訪問位置的指標需要引用

c++

/*

struct treenode

};*/

class solution

void converttreetolist(treenode* pnow, treenode* &ppre)

};

劍指offer JZ26二叉搜尋樹與雙向鍊錶

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 熱度指數 458676 本題知識點 鍊錶 樹 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。function treenode x function c...

劍指 Offer JZ39 平衡二叉樹

輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹 平衡樹 平衡樹 balance tree,bt 指的是,任意節點的子樹的高度差都小於等於1。二叉排序樹 一棵空樹,或者是具有下列性質的二叉樹 若左子樹不空,則左子樹上所有結點的值均小於它的根結...

劍指offer No 26 二叉搜尋樹與雙向鍊錶

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。比如將二元查詢樹 10 6 14 4 8 12 16 轉換成雙向鍊錶 4 6 8 10 12 14 16。首先,我們知道 在二叉樹中,每個結點都有兩個指向子結點的指標。在雙向鍊錶中,每個...