58 二叉樹的中序遍歷的下乙個節點

2021-07-04 06:47:52 字數 667 閱讀 5107

題目:

給定一棵二叉樹和其中的乙個節點,如何找出中序遍歷順序的下乙個節點?樹中的節點除了由兩個分別指向左右節點的指標外,還有乙個指向父節點的指標。

中序遍歷:先訪問當前節點的左子樹,再訪問當前節點本身,最後訪問當前節點的右子樹。

因此:

如果給定節點有右子樹,則下乙個節點是它的右子節點;

如果給定節點沒有右子樹,需要向上找到乙個祖父節點(它是自己父節點的左節點),該祖父節點的父節點就是下乙個節點。如果沒有找到,返回null。

中序遍歷順序為:428591637

如上圖中,給定節點9,則無右節點,找到祖父節點2是1的左節點,返回 1 的節點;給定 7 ,最後找到 1 的父節點為null,返回null

struct binarytreenode 

;binarytreenode* getnext(binarytreenode* pnode)

} else

if (pnode->m_pparent !=

null)

pnextnode = pparent;

}return pnextnode;

}

58 二叉樹的下乙個節點

題目描述 給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。始終搞不懂,為什麼要以節點的右孩子作為判斷標準。補充 當遍歷到當前節點,假如它是正常的二叉樹 有左右孩子 那麼此時中序遍歷的話,左孩子已經遍歷過了,當前節點...

尋找二叉樹中序遍歷的下乙個節點

尋找二叉樹中序遍歷的下乙個節點 題目給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。分析 首先需要了解中序遍歷的順序 對圖中的數中序遍歷序列則為 d b a e c f 因此參考該圖,考慮如何確定乙個節點的中序遍歷...

二叉樹的下乙個結點 中序遍歷

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。struct treelinknode 既然有父節點,那麼久可以不用遍歷全部樹來獲得結果 可以分情況討論 首先中序遍歷是,先左子樹在根節點在右子樹 1 某乙個節點的中...