二叉樹的下乙個結點

2021-10-09 03:55:40 字數 658 閱讀 6267

這題可以還原二叉樹再遍歷來做,也可以直接判斷,但要分清幾種情況,我是按本節點是左右還是根節點來判斷的,比較混亂且出現空指標情況無法消除,其實可以按照中序遍歷的特點,以是否有右子樹來判斷。

有右子樹,下一結點是右子樹中的最左結點,例如 b,下一結點是 h

無右子樹,且結點是該結點父結點的左子樹,則下一結點是該結點的父結點,例如 h,下一結點是 e

無右子樹,且結點是該結點父結點的右子樹,則我們一直沿著父結點追朔,直到找到某個結點是其父結點的左子樹,如果存在這樣的結點,那麼這個結點的父結點就是我們要找的下一結點。例如 i,下一結點是 a;例如 g,並沒有符合情況的結點,所以 g 沒有下一結點

public

class

solution

return pright;

}// 2.

if(pnode.next != null && pnode.next.left == pnode)

// 3.

if(pnode.next != null)

return pnext.next;

}return null;

}}

二叉樹的下乙個結點

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

二叉樹的下乙個結點

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

二叉樹的下乙個結點

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