兩次過 二叉樹的下乙個結點

2021-09-22 07:48:16 字數 702 閱讀 5020

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

分析二叉樹的下乙個節點,一共有以下情況:

1.二叉樹為空,則返回空;

2.若節點右孩子存在,則設定乙個指標從該節點的右孩子出發,一直沿著指向左子結點的指標找到的葉子節點即為下乙個節點;

3.若節點右孩子不存在:

檢視該節點是否是其父節點的左孩子,若不是則向上移動到其父節點,直到該節點是其父節點的左孩子,則返回父節點。

注意處理推到根節點也沒有結果的情況,只需要加入node.next != null即可

//沒右子樹,則找第乙個當前節點是父節點左孩子的節點

//如果退到根節點還沒找到直接返回node.next也沒問題,因為此時node.next==null

while(node.next != null && node.next.left != node)

node = node.next;

return node.next;}}

二叉樹的下乙個結點

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

二叉樹的下乙個結點

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。二叉樹的下乙個結點 author 過路的守望 public class getnextnode 若當前節點有右兒子,則返回右兒子的最左兒子 if node....

二叉樹的下乙個結點

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。思路 結合圖,我們可發現分成兩大類 1 有右子樹的,那麼下個結點就是右子樹最左邊的點 eg d,b,e,a,c,g 2 沒有右子樹的,也可以分成兩類,a 是...