二叉樹的下乙個結點(劍指offer)

2021-10-05 11:16:48 字數 527 閱讀 6308

如果當前結點有右孩子

後繼節點就是它的右子樹的最左子節點(從右子節點出發一致沿著指向左子節點的指標,即可找到)

若此節點沒有右孩子

(1) 如果當前節點是它父節點的左子節點,則後繼結點就是它的父節點

(2)如果當前節點是它父節點的右子節點

沿著指向父節點的指標一直向上遍歷,直到找到乙個是它父節點的左子節點的節點,如果這樣的節點存在,那麼這個節點的父節點就是我們要找到的下乙個節點;不存在即為null

如:如該節點為這棵二叉樹的最右結點,此時它不存在後繼結點。

public

class

solution

return pnode;

}//若此節點非根節點,且沒有右子樹

while

(pnode.next != null)

pnode = pnode.next;

}return null;

}}

劍指offer 二叉樹的下乙個結點

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。using namespace std struct treelinknode class solution treelinknode nextnode n...

劍指offer 二叉樹的下乙個結點

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

劍指offer 二叉樹的下乙個結點

試題 這一題的題意是以中序遍歷訪問二叉樹,現在訪問到某個給定節點,讓你求接下來訪問的節點。按照中序規則 1 如果當前節點有右子節點的話,那麼下乙個應該是該右子節點下左葉子節點 2 如果當前節點沒有右子節點的話,此時我們應該去找當前節點的父節點,如果當前節點為父節點的左子節點,那麼父節點為下一訪問節點...