面試題08 二叉樹的下乙個結點

2021-09-28 15:56:40 字數 728 閱讀 6607

給定一棵二叉樹的其中乙個節點,請找出中序遍歷序列的下乙個節點。

注意:

如果給定的節點是中序遍歷序列的最後乙個,則返回空節點;

二叉樹一定不為空,且給定的節點一定不是空節點;

樣例

假定二叉樹是:[2, 1, 3, null, null, null, null], 給出的是值等於2的節點。

則應返回值等於3的節點。

解釋:該二叉樹的結構如下,2 的後繼節點是 3。

2 / \

1 3

先判斷該結點是否有右孩子,如果有右孩子的話,中序遍歷的下個結點肯定在右子樹上——要麼是右子樹的根結點,要麼是右子樹的最左葉子結點。

沒有右孩子,則需要根據父結點來判斷:該結點是父結點的左孩子還是右孩子

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

return p;

}while

(p.father != null && p.father.right == p)

return p.father;

}}

面試題8 二叉樹的下乙個結點

面試題8 二叉樹的下乙個結點 樹中的結點除了有兩個分別指向左右子結點的指標以外,還有乙個指向父結點的指標。二叉樹的結構體定義如下。以上圖為例,節點有沒有左子樹不影響,因為左子樹肯定會在節點之前被遍歷。如果輸入節點有右子樹,比如根節點a有右子樹c,但是節點c可能是其他左子樹的根節點,所以中序遍歷不能選...

面試題8 二叉樹的下乙個結點

面試題8 二叉樹的下乙個結點 樹中的結點除了有兩個分別指向左右子結點的指標以外,還有乙個指向父結點的指標。二叉樹的結構體定義如下。以上圖為例,節點有沒有左子樹不影響,因為左子樹肯定會在節點之前被遍歷。如果輸入節點有右子樹,比如根節點a有右子樹c,但是節點c可能是其他左子樹的根節點,所以中序遍歷不能選...

二叉樹的下乙個結點

這幾天由於一些原因沒及時更新部落格,抽時間來寫寫資料結構。這次是去尋找二叉樹的下乙個節點。總體思路最開始依舊是遞迴,但是比較困難,因此還是來畫圖分析。節點有指向父節點的指標next,節點類為 public class treelinknode 中序遍歷是按照 左 根 右 的規律來遍歷的。也就是如果指...