// 找尋節點的前驅節點
public node
predecessor
(node
node)
return p;
}// 2. 節點的左子樹不存在
while
(node.parent != null && node == node.parent.left)
return node.parent;
}//找尋節點的後繼節點
public node
sucessor
(node
node)
return s;
}//如果節點不存在右子樹,那麼就尋找父節點和祖父節點的左子樹
while
(node.parent != null && node == node.parent.right)
return node.parent;
}
二叉搜尋樹的前驅和後繼詳細推導
後繼和前驅 定義 乙個結點的後繼,是大於x.key的最小關鍵字的結點。乙個結點的前驅,是小於x.key的最大關鍵字的結點。思路 找乙個結點的前驅或者後繼,無非是在三個區域找。首先分析前驅 滿足兩個條件,一是要小於當前鍵值,那麼只有lp和ls區可以找。二要求是其中最大的值。我們知道,對於lp來說,x ...
找到二叉樹的後繼節點(或前驅節點)
找到二叉樹的前驅節點 在二叉樹的中序遍歷中,乙個節點的後繼結點就是他的下乙個節點 想要找到任意乙個節點的後繼結點,二叉樹的節點型別node需要包含父節點的資訊 節點 struct node include include 節點 struct node void insert tree node ro...
學習筆記 尋找二叉樹的前驅節點和後繼節點
二叉樹前驅節點和後繼節點 乙個二叉樹中序遍歷中某個節點的前乙個節點叫該節點的前驅節點,某個節點的後乙個節點叫後繼節點 該題目中還有乙個節點指向節點的父節點 parent,規定頭節點的父親節點的指標為空。struct treenode 思路 1 尋找前驅 若該節點存在左子樹,則其前驅節點為左子樹最右邊...