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

2021-08-06 06:54:58 字數 581 閱讀 2595

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

在編寫程式之前,先縷清思路。在該題總,應該分不同情況對其進行討論。

情況一:(魯棒性)目標節點為空節點時返回ptr;

情況二:目標節點沒有父節點且沒有右子樹時,即該節點就是中序遍歷的最後乙個元素了,下乙個節點為nullptr;

情況三:目標節點有右子樹時,下乙個節點就為其右子樹中的最左元素;

情況四:目標節點沒有右子樹,但目標節點有父節點時。此時應判斷目標節點是其父子樹的左子樹還是右子樹。如果目標節點為左子樹,那麼下乙個節點就是其父節點。如果目標節點為右子樹,那麼就一直向上找父節點,知道所找的點是其父節點的左子樹,那麼結果就是找到的點的父節點。

/*

struct treelinknode

};*/

class solution

return pnext;

}if (pnode->next !=

null)

}return pnext;

}};

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

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

劍指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...

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

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