給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
注意題目沒有給出二叉樹的根節點
分情況進行討論:
如果給定的這個節點沒有右孩子,則中序遍歷的下乙個節點就是該樹的根節點,主要是根據父親指標進行求根節點
該種情況下需要考慮兩種特殊情況: 第一:如果所給定的節點是根節點,則直接進行返回null。第二:如果所給定的節點是整棵樹的最右邊的節點,那麼也返回空
如果給定的這個節點有右子樹,那麼他的中序遍歷的下乙個節點就是他的右子樹的最左邊的節點
public
class
solution
}return
getleftnode
(pnode.right)
;//return pnode;
}//獲取一棵數的最左邊的節點
public treelinknode getleftnode
(treelinknode pnode)
//獲取一棵數的最右邊的節點
public treelinknode getrightnode
(treelinknode pnode)
//獲取一棵樹的根節點
劍指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...