給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
二叉樹為空,則返回空;
節點右孩子存在,則指標從該節點的右孩子出發,一直沿著指向左子結點的指標找到的葉子節點即為下乙個節點;
節點不是根節點。如果該節點是其父節點的左孩子,則返回父節點;否則繼續向上遍歷其父節點的父節點,重複之前的判斷,返回結果。
中序遍歷(ldr)是二叉樹遍歷的一種,也叫做中根遍歷、中序周遊。在二叉樹中,先左後根再右。巧記:左根右。
package tree;
/** * 二叉樹的下乙個結點
* 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。
* 注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
*/public class solution32
return pnode;
}//該節點不是根節點,若該節點是其父節點的左孩子,則返回父節點;否則繼續向上遍歷其父節點的父節點,重複之前的判斷,返回結果。
while (pnode.next != null)
return null;
}public class treelinknode
}}
posted @
2018-03-30 21:28
武培軒 閱讀(
...)
編輯收藏
劍指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...