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

2021-10-13 06:52:07 字數 592 閱讀 6350

題目描述

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

struct treenode };

class

solution

pre = prootoftree;

convert

(prootoftree-

>left)

;return pre;}}

;

思路:
struct treenode };

class

solution

pre = prootoftree;

convert

(prootoftree-

>left)

;return pre;}}

;

其中我們用pre儲存前置遍歷節點,採用右子樹先行的中序遍歷,遇到nullptr直接返回,因為是從大到小遍歷,每次處理將當前節點prootoftree右指標指向前置節點pre,再將前置節點pre左指標指向prootoftree,處理結束後再將前置節點置為現在的節點。

JZ26 二叉搜尋樹與雙向鍊錶

題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。題解 1 中序遍歷搜尋二叉樹,並依次將結點存入list。2 遍歷list,改變其指向。public treenode convert treenode prootoftree ...

劍指offer系列26之二叉搜尋樹與雙向鍊錶

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。思路一 非遞迴法 非遞迴法主要利用了二叉樹的中序遍歷的非遞迴方法。python實現 coding utf 8 class treenode def init self,x self.va...

JZ23 劍指offer 二叉搜尋樹的後序遍歷序列

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則返回true,否則返回false。假設輸入的陣列的任意兩個數字都互不相同。class solution bool dfs vector int s,int st,int en for int j i j j retur...