[英]Binary Search Tree Multiply nodes by -1
考慮到您有Binary Search Tree
,如果multiply all nodes by -1
那么有人可以讓我知道它是否仍然是Binary Search Tree
嗎?
是否可以編寫將其轉換回Binary Search Tree
的函數?
在二叉搜索樹中,節點的左子樹的所有元素必須小於(或在某些樹中),並且節點的右子樹的所有元素必須大於(或在某些樹中)節點。 如果將所有節點乘以-1,最終將其翻轉,以使每個節點的左側子樹存儲較大的值,而右側子樹存儲較小的值。 要將其轉換回BST,您必須通過鏡像來“翻轉” BST。 在練習中,我將保留如何執行此操作的詳細信息。 這是一個經典的CS問題,帶有精美的遞歸解決方案。
希望這可以幫助!
有趣的問題。
在Binary Search Tree
,對象圖的結構指示排序順序。
通過將所有對象乘以-1,現在將其反向排序。
例如:
3 4 8 9 12
變
-3 -4 -8 -9 -12
那么,如何使它仍然保持Binary Search Tree屬性?
一棵二叉樹將由兩件事組成:一個對象節點圖,以及有關如何比較這些對象的知識。 比較功能如下所示:
Compare(left, right) {
return (left < right);
}
如果對二進制樹中的值執行轉換,則可以更改其比較函數,然后它將繼續按應有的方式運行。
myBinaryTree.comparisonFunction = function(left, right) { return (right < left) };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.