演算法 求乙個節點的後繼節點 中序遍歷

2022-09-19 11:21:12 字數 520 閱讀 1361

public class node

}

以上樹節點的結構中增加了指向父節點的引用。

基於上述節點結構,若想求中序遍歷中乙個節點的後繼節點,該如何求?

在中序遍歷中,對於乙個節點來說,若它有右子樹,則右子樹上最左節點即為該節點的後繼節點。若無右子樹,則從該節點開始,沿著父節點引用往上掃瞄,看是否在父節點的左分支上,若在,則該父節點即為後繼節點,若一直掃瞄到父節點為null,則這個節點是樹的最右節點,無後繼節點。

public class successornode 

if (node.right != null) else

return parent;}}

//求以node為根節點的樹的最左節點。

public static node getleftmost(node node)

while (node.left != null)

return node;

}}

求中序遍歷的下乙個節點

出處 node findinordersuccessor node root,node target if s.empty else if prev target prev cur cur cur right return null 另外一種原創解法,假設輸入引數只有乙個,所求的為輸入引數的下乙個節...

二叉樹的下乙個節點 中序

給定乙個二叉樹和其中的乙個結點,請找出中序遍歷順序的下乙個結點並且返回。注意,樹中的結點不僅包含左右子結點,同時包含指向父結點的指標。public class treelinknode 1 有右子樹的,那麼下個結點就是右子樹最左邊的點 2 沒有右子樹的,也可以分成兩類,a 是父節點左孩子,那麼父節點...

在二叉樹中找到乙個節點的後繼節點 前驅節點

在二叉樹中找到乙個節點的後繼節點 針對於中序遍歷而言 求乙個節點的後續節點 乙個節點有右子樹,則該節點的後繼節點為其右子樹最左的節點,返回該左節點 當乙個節點沒有右子樹,通過改節點的父指標找到parent,若該節點的父指標有右孩子,就繼續往上,一直到某個節點是他父節點的左孩子停止,返回改父節點。pu...