3 条回复
第三题,用的比较笨的方法。
先建立树:
var rs = []; var d = 1; for(var i = 0;i < tree.length;i++){ var le = []; for(var j = 0;j < d && i < tree.length;j++){ le.push(tree[i]); i++ } rs.push(le); i--; d *= 2; }
然后在遍历树:
var printarr = []; find(rs,0,0); function find(arr,x1,x2){ if(!(x1 < arr.length && x2 < arr[x1].length)) return; if(arr[x1][x2]) printarr.push(arr[x1][x2]); if((x1+1) < arr.length && arr[x1 + 1][x2 * 2]) find(arr,x1 + 1,x2 * 2); if((x1+1) < arr.length && arr[x1 + 1][x2 * 2 + 1]) find(arr,x1 + 1,x2 * 2 + 1); }
效率不高但是AC了
添加回复