JZ26 二叉搜尋樹與雙向鍊錶

2021-10-09 00:02:18 字數 743 閱讀 3752

題目描述:

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

題解:

(1)中序遍歷搜尋二叉樹,並依次將結點存入list。

(2)遍歷list,改變其指向。

public treenode convert

(treenode prootoftree)

arraylist

list =

newarraylist

<

>()

;inordercovert

(prootoftree,list)

;return resultcovert (list);}

// 按中序遍歷順序,即二叉搜尋樹的大小順序將各結點儲存至 list

public

void

inordercovert

(treenode root,arraylist

list)

list.

add(root);if

(root.right != null)

}// 遍歷list,修改指標

public treenode resultcovert

(arraylist

list)

return list.get (0)

;}

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

題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。struct treenode class solution pre prootoftree convert prootoftree left return pre 思路 st...

26 二叉搜尋樹與雙向鍊錶

題目 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶,要求不能建立任何新的結點,只能調整樹中結點指標的指向。思路 二叉搜尋樹的特點是左子樹的值小於等於根結點,右子樹的值大於等於根結點 每個節點都有指向左子結點的指標和指向右子結點的指標 雙向鍊錶結點的結構 pprev data pnext...

26 二叉搜尋樹與雙向鍊錶

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。思路 二叉搜尋樹的中序遍歷是從小到大排序的。所以得利用中序遍歷,將左指標指向前乙個元素,右指標指向下乙個元素。所以需要遞迴裡需要有乙個變數表示前乙個節點。注意,需要用指標的指標,否則值傳...