題目給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。思路:
分三種情況:
1、如果該節點有右子樹,則中序下乙個節點就是右子樹的最左節點(b.next=h);
2、如果該節點沒有右子樹,且是其父親節點的左子節點,則下乙個就是其父親節點(h.next=e);
3、如果該節點沒有右子樹且是其父親節點的右子節點,則一直網上找其父親節點,直到某乙個父親節點 是左子樹,則返回該父親節點的父親節點(i.next=a)。
leetcode不含此題,以下**執行在牛客網,因為牛客不提供python3,所以只有c++:
c++
/*
struct treelinknode
};*/
class
solution
else
if(pnode-
>next!=
nullptr
)//右子樹為空
pnext = parent;
//如果不執行上面的while,代表當前節點是其父節點的左子節點,返回其父節點
}return pnext;}}
;
劍指offer 面試題8 二叉樹的下乙個節點
完整 位址 給定一棵二叉樹和其中的乙個節點,如何找出中序遍歷的下乙個節點?樹中的節點除了有兩個分別指向左 右節點的指標,還有乙個指向父節點的指標。public static class treelinknode 首先判斷node是否有右子樹?有右子樹則返回右子樹中最左的節點 沒有右子樹的話判斷nod...
劍指offer面試題8 二叉樹的下乙個節點
樹中的節點除了有左右指標還有乙個指向父節點的指標 a b c d e f g h i 它的中序遍歷是 1.如果乙個節點有右子樹,那麼它的下乙個節點就是它的右子樹中最左子節點,例如b的下乙個是h 2.如果乙個節點沒有右子樹,如果這個節點是它父節點的左節點,那麼它的下乙個節點就是它的父節點 3.如果乙個...
劍指offer 面試題8 二叉樹的下乙個節點
個人部落格位址 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。題解 當前節點沒有右子樹並且是其父節點的右子節點 否則,找到當前節點的父節點。public class treelinknode public cla...