給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
public class treelinknode
}
① 如果乙個節點的右子樹不為空,那麼該節點的下乙個節點是右子樹的最左節點;
② 否則,向上找第乙個左鏈結指向的樹包含該節點的祖先節點。
public treelinknode getnext(treelinknode pnode) else
}return null;
}
找中序遍歷的下乙個節點的第一步,只能是往上走或者往右走,不可能往左走。
所以就會分出來什麼情況下往上走什麼情況下往右走,往上走的時候找的是乙個pnode節點的父節點的左子樹就是pnode,返回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...