劍指 Offer 08 二叉樹的下乙個節點

2021-10-08 15:17:33 字數 731 閱讀 8474

題目描述:

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

解題思路:

中序遍歷的順序是「左子樹–>根節點–>右子樹」,因此有兩種情況:

(1)該節點有右子樹,那麼該節點中序遍歷的下乙個節點是右孩子的最左子節點

(2)該節點沒有右子樹,這時候該節點中序遍歷的下乙個節點必定是其祖先節點(不一定是父親節點),這時候有兩種情況:一種情況是該節點是其父親節點的左孩子,那麼其父親節點是中序遍歷的下乙個節點;另一種情況是該節點是其父親節點的右孩子,那麼沿著父親節點的指標一直向上遍歷,知道找到乙個是它父親節點的左孩子的節點,如果這個節點存在,那麼這個節點的父親節點就是中序遍歷的下乙個節點。

實現**:

public treelinknode getnext

(treelinknode pnode)

else

}return null;

}

劍指offer 08 二叉樹的下乙個結點

08.二叉樹的下乙個結點 給定乙個二叉樹和其中的乙個結點,請找出中序遍 歷順序的下乙個結點並且返回。注意,樹中的結點不僅包 含左右子結點,同時包含指向父結點的指標。根據中序遍歷的規則 先遞迴左子樹取左結點,取根結點,後遞迴右子樹取右結點 我們可以倒過來討論以下情況 1,如果結點 a,b,c,e 有右...

劍指offer 08 二叉樹的下乙個節點

劍指offer第8題,本來想找leetcode上對應的題,後來沒找到,直接去牛客網上刷了。給定乙個二叉樹和其中的乙個結點 pnode 請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。我看到這道題的第乙個想法,就是不用管左子樹。因為中序遍歷,左子樹...

劍指offer 二叉樹 二叉樹搜尋樹

package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...