樹 二叉樹的下乙個結點

2021-08-02 07:07:26 字數 850 閱讀 3139

題目描述

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

思路:

如果乙個結點有右子樹,那麼它的下乙個結點就是它的右子樹中的左子結點。也就是說右子結點出發一直沿著指向左子結點的指標,我們就能找到它的下乙個結點。

接著我們分析乙個結點沒有右子樹的情形。

如果結點是它父節點的左子結點,那麼它的下乙個結點就是它的父結點。

如果乙個結點既沒有右子樹,並且它還是它父結點的右子結點,這種情形就比較複雜。我們可以沿著指向父節點的指標一直向上遍歷,直到找到乙個結點a,a是它父結點的左子結點。如果這樣的結點存在,那麼這個結點a的父結點就是我們要找的下乙個結點。

/*

public

class treelinknode }*/

public

class solution

//有右子樹

if(pnode.right != null)

return p;

}//無右子樹的根結點

if(pnode.next == null)

//無右結點且為父結點的左結點

if(pnode.next.left == pnode)

//無右結點且為父結點的右結點

treelinknode p = pnode.next;

while(p != null && p.next != null)

p = p.next;

}return

null;

}}

樹 二叉樹的下乙個結點

題目 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。解答 1.二叉樹為空,則返回空 2.節點右孩子存在,則設定乙個指標從該節點的右孩子出發,一直沿著指向左子結點的指標找到的葉子節點即為下乙個節點 3.節點不是根節...

二叉樹 二叉樹的下乙個結點

題目描述 給定一棵二叉樹和乙個結點,要求找到中序遍歷此樹時該結點的下乙個結點。分析 中序遍歷一棵二叉樹時,要根據乙個結點有無右子樹而分開討論。若當前結點有右子樹,則它的下乙個結點就是其右子樹的最左葉子結點 若當前結點沒有右子樹,那麼又分兩種情況 若當前結點是其父節點的左孩子結點,那麼其下乙個結點就是...

二叉樹的下乙個結點

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