給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。
以該二叉樹為例,中序遍歷為:
有右子樹,下一結點是右子樹中的最左結點,例如 b,下一結點是 h
無右子樹,且結點是該結點父結點的左子樹,則下一結點是該結點的父結點,例如 h,下一結點是 e
無右子樹,且結點是該結點父結點的右子樹,則我們一直沿著父結點追朔,直到找到某個結點是其父結點的左子樹,如果存在這樣的結點,那麼這個結點的父結點就是我們要找的下一結點。例如 i,下一結點是 a;例如 g,並沒有符合情況的結點,所以 g 沒有下一結點
/*
public class treelinknode }*/
public class solution
return pnode;
}// 2
if(pnode.next != null && pnode.next.left == pnode)
//3if(pnode.next != null)
return pnext.next;
}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...