按照中序遍歷,可能出現以下幾種情況:
1.當前節點有右子節點。則下乙個節點為右子樹的最左側節點;
2.當前節點沒有右子節點,也就是說在該子樹已經遍歷完畢,需要返回到上一層節點。中序遍歷是從左向右遍歷每個子樹,如果該子樹是左子樹,那還有右子樹可以遍歷,所以其父節點是某乙個節點的左節點。下乙個節點就是父節點的父節點。如果該子樹是右子樹,那就意味著遍歷結束,也即它所有的父節點都是某一節點的右節點。
**如下:
treelinknode*
getnext
(treelinknode* pnode)
while
(pnode -
>next !=
null
)return
null
;}
劍指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...