資料結構 將有序陣列轉為二叉搜尋樹

2021-07-11 13:51:40 字數 539 閱讀 3733

//將有序陣列轉化為二叉搜尋樹

//二叉搜尋樹:每乙個節點的值大於左孩子的值,小於右孩子的值,如果採用中序遍歷,輸出結果為從小到大的

public binarytree arraytobst(t array,int start,int end)

//將陣列的中間值賦給節點,遞迴呼叫完成左子樹和右子樹的建立

int mid = start+(end-start)/2;

root = new binarytree(array[mid],arraytobst(array,start,mid-1),arraytobst(array,mid+1,end));

return root;

}

二叉樹的結構定義如下:

/**

* created by novax_000 on 2016/5/1.

*/public class binarytree

public binarytree()

}

LeetCode 108 將有序陣列轉為二叉搜尋樹

利用深度優先遍歷,每次都取出中間數作為根節點 最開始取陣列中間數作為根節點,然後以該中間數左右分割出兩個子陣列 左邊的子陣列就是左子樹的陣列,右邊的子陣列就是右子樹的陣列 然後再根據各個子樹對應的陣列去取出中間數作為子樹的根節點,以此類推 class solution private treenod...

LeetCode 將有序陣列轉換為二叉搜尋樹

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...

將有序陣列轉換為二叉搜尋樹

示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10 5大致思路,二叉搜尋樹的特性就是根節點的左子樹中的數都小於根節點,右子樹都大於根節點。這就想到了用二分法,找到中間的數,則這個數左邊的數比它小,右邊數比...