做这个题目的人比价少,哇哈哈哈,还是蛮顺利的,效率也不错
/**
* Definition for a binary tree node.* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var widthOfBinaryTree = function(root) {
/*
深度优先
呵呵呵
定义一个数组
arr[0]
arr[1]
arr[2][0] [1] 最大,最小
*/
arr=[];
var search = function(root,level,pos){
if(arr[level]==undefined){
arr[level]=[];
}
if((pos)<arr[level][0] || arr[level][0]==undefined){
arr[level][0]=pos;
}
if((pos)>arr[level][1] || arr[level][1]==undefined){
arr[level][1]=pos;
}
if(root.left!=null){
search(root.left,level+1,2*pos-1);
}
if(root.right!=null){
search(root.right,level+1,2*pos);
}
}
search(root,0,0);
len=1;
console.log(arr);
for(var i=0;i<arr.length;i++){
if(arr[i][0]==undefined || arr[i][1]==undefined){
len1=1;
}else {
len1 = arr[i][1] - arr[i][0]+1;
}
if(len1>len){
len=len1;
}
}
return len;
};