題目描述
給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
思路:
如果乙個結點有右子樹,那麼它的下乙個結點就是它的右子樹中的左子結點。也就是說右子結點出發一直沿著指向左子結點的指標,我們就能找到它的下乙個結點。
接著我們分析乙個結點沒有右子樹的情形。
如果結點是它父節點的左子結點,那麼它的下乙個結點就是它的父結點。
如果乙個結點既沒有右子樹,並且它還是它父結點的右子結點,這種情形就比較複雜。我們可以沿著指向父節點的指標一直向上遍歷,直到找到乙個結點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 中序遍歷是按照 左 根 右 的規律來遍歷的。也就是如果指...