题解 | #判断二叉树是否对称#
将升序数组转化为平衡二叉搜索树
http://www.nowcoder.com/practice/7e5b00f94b254da599a9472fe5ab283d
需要用的方法为--递归分治法。
import java.util.*;
/*
- public class TreeNode {
- int val = 0;
- TreeNode left = null;
- TreeNode right = null;
- }
- /
public class Solution {
/**
*
* @param num int整型一维数组
* @return TreeNode类
*/
public TreeNode sortedArrayToBST (int[] num) {
// write code here
if(num == null || num.length == 0){
return null;
}
int n = num.length;
int mid = n/2;
TreeNode node = new TreeNode(num[mid]);
int [] numLeft = new int [mid];
int []numRight = new int [n-mid-1];
for(int i = 0 ; i<mid ; i++){
numLeft[i] = num[i];
}
for(int i = mid+1 ; i<n ; i++){
numRight[i-mid-1] = num[i];
}
node.left = sortedArrayToBST(numLeft);
node.right = sortedArrayToBST(numRight);
return node;
}
}