輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。
中序遍歷即可。只需要記錄乙個pre指標即可。
這裡的treenode*& pre要花時間搞清楚:
這裡表示:treenode* 型別的指標,對於pre這個指標取址後的物件。即乙個指向指標的指標。更舒服的寫法是
typedef treenode* node;之後就可以定義引數為 node &pre。這樣就比較清晰了。感謝西蒙的幫助。
/*
struct treenode
};*/
class solution
void converthelper(treenode* cur,treenode*& pre)
};
劍指offer 程式設計題 二叉搜尋樹的後序遍歷序列
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。思路 class solution public bool verifysquenceofbst vectora 非遞迴 非遞迴也是乙個基於遞迴的思想 左子樹一定...
劍指offer程式設計題《重建二叉樹》
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。我們都知道,通過前序遍歷和中序遍歷或後序遍歷和中序遍歷可以唯一確定一棵二叉樹。前序 根 左 右 中序 左 根 右 後序 左 右 根 ...
劍指offer程式設計題 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。這道題目是一道非常經典的題目,這裡可以用乙個hash表存下中序遍歷的value的index,可以快速找到index definiti...