層次遍歷構建二叉樹:測試
1.定義二叉樹節點:this
1 function TreeNode(val){ 2 this.val = val; 3 this.left = this.right = null; 4 }
2.層次遍歷構建二叉樹:spa
1 function createTree(arr){ 2 if(!arr||!arr.length)return null; 3 var root = new TreeNode(arr.shift()); 4 var list = [root]; 5 while(arr.length){ 6 var tmpList = []; 7 for(var i=0;i<list.length;i++){ 8 var p = list[i]; 9 var left = arr.shift(); 10 if(left!==null){ 11 p.left = new TreeNode(left); 12 } 13 var right = arr.shift(); 14 if(right!==null){ 15 p.right = new TreeNode(right); 16 } 17 if(p.left){ 18 tmpList.push(p.left); 19 } 20 if(p.right){ 21 tmpList.push(p.right); 22 } 23 } 24 list = tmpList; 25 } 26 return root; 27 }
3.測試code
//var arr = [1,2,2,3,4,4,3]; var arr = [1,2,2,null,3,null,3]; var root = createTree(arr); console.log(root);