劍指Offer 二叉樹的下乙個節點 8

2022-01-29 18:11:52 字數 907 閱讀 4532

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

如圖所示:

中序遍歷的順序為:

中序遍歷分為三種情況:

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

如:b ——>h, a——>f

下乙個節點就是它的父節點

如:d——>b, f——>c, h——>e

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

1

public

class

solution else

if(pnode.next != null

)22 pnext =pparent;

2324}25

return

pnext;26}

27 }

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

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

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

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。在編寫程式之前,先縷清思路。在該題總,應該分不同情況對其進行討論。情況一 魯棒性 目標節點為空節點時返回ptr 情況二 目標節點沒有父節點且沒有右子樹時,即該節點就是...

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

struct treelinknode class solution return currnode case two the node does not has right son,it is the left son of its father if pnode next null return...