(劍指Offer)面試題58 二叉樹的下乙個結點

2021-09-07 01:36:57 字數 513 閱讀 7918

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。

考慮中序遍歷的過程,

如果當前結點存在右子節點,那麼當前結點的下乙個結點應該為該右子樹的最左邊的結點;

如果當前結點沒有右子節點,那麼如果當前結點的父結點p->parent為其父結點的父結點p->parent->patent的左子結點,那麼當前結點的下一結點即為其父結點;否則繼續往上遍歷,直至找到乙個結點為其父結點的左子結點,那麼該結點即為當前結點的下一結點,如果找不到,則返回null;

(文字描述比較晦澀,大家可以畫圖看看)

ac**:

using namespace std;

/*struct treelinknode

};*/

class solution

return ptmp;

}else

return null;}}

};

《劍指Offer》面試題 平衡二叉樹

題目 輸入乙個二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。思路 用後序遍歷實現 先遍歷節點的左右子樹,左右子樹都平衡才來判斷該節點是否平衡,如果左右子樹中有不平衡的,則直接返回false,避免了從上往下逐個節點地計算深度帶來...

劍指Offer 面試題 樹和二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。基礎知識 在二叉樹的前序遍歷序列中,第乙個數字總是樹的根節點的值。在中序遍歷序列中,根節點的值在序列的中間,左子樹的節點的...

《劍指Offer》面試題 二叉樹的深度

題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。思路 此題的遞迴思想比較簡單,直接用遞迴將根節點的深度轉換為求左右子孩子的深度的較大值 1,根節點的深度等於max 左孩子的深度,右孩子的深度 輸入 第一行輸入有n,n表...