劍指Offer BST轉為雙向鍊錶

2021-07-29 17:06:51 字數 499 閱讀 7044

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

利用left作為雙向鍊錶的前驅指標,right作為雙向鍊錶的後驅指標,採用遞迴從子樹開始轉換。

package convertbsttodoublelink;

class treenode

}public class solution

public void helper(treenode prootoftree)

if(prootoftree.right!=null)

}// 列印測試

public void print(treenode ret)

system.out.println();

while(tmp1!=null)

}public static void main(string args)

}

劍指offer 鍊錶

單向鍊錶的結構定義 typedef int datatype struct listnode 問題1 往鍊錶的末尾新增乙個結點 給定頭結點,往末尾插入乙個結點 void insertnode listnode head,datatype key listnode p head while p nex...

劍指offer 鍊錶

鍊錶 鍊錶是一種動態資料結構 struct listnode 往鍊錶的末尾新增乙個節點的c 程式如下 void addtotail listnode phead,int value 注意第乙個引數phead是乙個指向指標的指標。當我們往乙個空鍊錶插入乙個結點時,else pnode m pnext ...

劍指offer 鍊錶

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。思路1 遞迴版 class solution 找到當前節點與下乙個節點不重複的點,從不重複的點開始遞迴 return deleteduplication phead next else 思路2 非遞迴版 ...