劍指 面試題8 二叉樹的下乙個節點

2021-10-03 23:30:06 字數 768 閱讀 2850

題目給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。

思路:

分三種情況:

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...