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

2021-09-25 16:48:43 字數 667 閱讀 6353

一.題目描述:

給定一棵二叉樹和其中的乙個節點,如何找出中序遍歷序列的下乙個節點?樹中的節點了有兩個分別指向左右子節點的指標,還有乙個指向父節點的指標。

二.解題思路:根據所給節點分類

1.如果這個節點有右子樹,那麼它的下乙個節點就是它的右子樹中最左子節點。

2.如果這個節點沒有右子樹並且它還是它父節點的左子節點,那麼它的下乙個節點就是它的父節點。

3.如果乙個節點既沒有右子樹,並且它還是它父節點的右子節點,那麼我們可以沿著指向父節點的指標一直向上遍歷,指導找到乙個是它父節點的左子節點的節點,如果這樣的節點存在,那麼這個節點的父節點就是我們要找的下乙個節點。

三.c++**實現

struct binarytreenode

;binarytreenode* getnext(binarytreenode* pnode)

else if(pnode->m_pparent != nullptr)

pnext = pparent;

}return pnext;

}

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