二叉搜尋樹的特點:中序遍歷的序列是乙個有序序列/陣列。
這裡主要展示有序陣列轉換為二叉搜尋樹,但是這樣的二叉搜尋樹為多個。所以這裡可以參看leetcode 108.將有序陣列轉換為二叉搜尋樹,加上了「平衡的條件」,儘管此時二叉搜尋樹的個數還是多個,但是在構造bst時很方便。只需要「不斷的折半」即可。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
treenode* build(vector& nums, int l, int r)
};
以上就是這篇的主要內容,如有問題或疑惑請您指出,謝謝! 將有序陣列轉換為二叉搜尋樹
示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10 5大致思路,二叉搜尋樹的特性就是根節點的左子樹中的數都小於根節點,右子樹都大於根節點。這就想到了用二分法,找到中間的數,則這個數左邊的數比它小,右邊數比...
將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...
將有序陣列轉換為二叉搜尋樹
題目 將有序陣列轉換為二叉搜尋樹 力扣 108 將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。分析二叉樹中序遍歷的逆序。找到陣列的中間位置,作為根節點,這時將陣列分為2個部分,遞迴實現節點構建...