題目描述:
給定一棵二叉樹的其中乙個節點,請找出中序遍歷序列的下乙個節點。
注意:樣例
假定二叉樹是:[2, 1, 3, null, null, null, null], 給出的是值等於2的節點。則應返回值等於3的節點。
解釋:該二叉樹的結構如下,2的後繼節點是3。
2/ \
1 3
分析:中序的後序結點是data structure中很喜歡考察的知識,用**寫出來比文字描述更加深刻,也更好記憶。
首先,某結點有右孩子,則該結點在其中序遍歷序列下的後繼為其右子樹最左下的那個結點,所以沿著其右孩子一直往左孩子遍歷即可找到。
若某結點沒有右孩子,且它是其父結點的左孩子,則其父結點為其後繼;若它是其父結點的右孩子,則一直往上遍歷,直到找到某結點是其父結點的左孩子或者其父結點為空(訪問到了根結點)為止,該結點的父結點便是所求的後繼。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
while(p->father && p == p->father->right) p = p->father;
return p->father;
}};
AcWing 19 二叉樹的下乙個節點
給定一棵二叉樹的其中乙個節點,請找出中序遍歷序列的下乙個節點。注意 假定二叉樹是 2,1,3,null,null,null,null 給出的是值等於2的節點。則應返回值等於3的節點。解釋 該二叉樹的結構如下,2的後繼節點是3。2 1 3若當前節點有右子樹,則右子樹中最左側的節點就是當前節點的後繼 若...
AcWing 19 二叉樹的下乙個節點
給定一棵二叉樹的其中乙個節點,請找出中序遍歷序列的下乙個節點。注意 樣例 假定二叉樹是 2,1,3,null,null,null,null 給出的是值等於2的節點。則應返回值等於3的節點。解釋 該二叉樹的結構如下,2的後繼節點是3。2 1 3先判斷如果當前節點有右孩子,則右子樹中最左側的節點就是當前...
二叉樹 二叉樹的下乙個結點
題目描述 給定一棵二叉樹和乙個結點,要求找到中序遍歷此樹時該結點的下乙個結點。分析 中序遍歷一棵二叉樹時,要根據乙個結點有無右子樹而分開討論。若當前結點有右子樹,則它的下乙個結點就是其右子樹的最左葉子結點 若當前結點沒有右子樹,那麼又分兩種情況 若當前結點是其父節點的左孩子結點,那麼其下乙個結點就是...