思路:採用中序遍歷的方法,visit函式須要完畢的功能為:
1、當前節點的左子節點指向上一次訪問的節點;
2、將上一次訪問節點的右子節點指向當前節點;
3、最後更新上一次訪問節點為當前節點。
在第二步時須要推斷上一次訪問節點是不是為null,假設是,則第二步改為鍊錶的頭結點指向當前節點。
程式例如以下:
struct bstnode
*plist,*phead;
void visit(bstnode * pcurrent)
void inorder(bstnode* root)
}
將搜尋二叉樹轉換成雙向鍊錶
對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。用兩種方法求解本題。方法一 由於是搜尋二叉樹,直接求出其中序遍歷序列,構造雙向鍊...
將搜尋二叉樹轉換成雙向鍊錶
題目 對二叉樹的節點來說,有本身的值域,有指向左孩子和右孩子的兩個指標 對雙向鍊錶的節點來說,有本身的值域,有指向上乙個節點和下乙個節點的指標。在結構上,兩種結構有相似性,現在有一棵搜尋二叉樹,請將其轉換為乙個有序的雙向鍊錶。public class convertdn public static ...
將搜尋二叉樹轉換成雙向鍊錶
題目 將搜尋二叉樹轉換成雙向鍊錶 程式設計師 面試指南 第26題 p81 難度 尉 頭一回做二叉樹的題,著實有點艱難。首先就倒在了牛客上面生成二叉樹的問題。題目給的示例輸入是這樣子的 9 6 4 7 4 2 5 2 1 3 5 0 0 1 0 0 3 0 0 7 0 9 9 8 0 8 0 0如果按...