二叉樹的下乙個結點 劍指Offer

2022-08-29 00:15:35 字數 553 閱讀 8687

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

當該結點有右子樹時,下乙個結點就是右子樹中最左的那個結點

當該結點沒有右子樹,而且是父節點的左子樹,那下乙個結點就是父節點

當該結點沒有右子樹,而且是父節點的右子樹,那就向上尋找直到是某個父節點的左子樹,然後改父節點就是下乙個結點,如果找到根節點還沒有找到滿足條件的父節點,那就是沒有下乙個結點

/*

public class treelinknode }*/

public class solution

if (pnode.right != null)

return pnode;

}if (pnode.next != null && pnode.next.left == pnode) else // 順著有父節點&&該節點是父節點右子樹往上找

return pnode.next; // 若沒有就返回null,next預設為null}}

}

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

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。using namespace std struct treelinknode class solution treelinknode nextnode n...

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

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。結合圖,我們可發現分成兩大類 1 有右子樹的,那麼下個結點就是右子樹最左邊的點 eg d,b,e,a,c,g 2 沒有右子樹的,也可以分成兩類,a 是父節點左孩子 e...

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

試題 這一題的題意是以中序遍歷訪問二叉樹,現在訪問到某個給定節點,讓你求接下來訪問的節點。按照中序規則 1 如果當前節點有右子節點的話,那麼下乙個應該是該右子節點下左葉子節點 2 如果當前節點沒有右子節點的話,此時我們應該去找當前節點的父節點,如果當前節點為父節點的左子節點,那麼父節點為下一訪問節點...