利用層次遍歷原理構建二叉樹

層次遍歷構建二叉樹:測試

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);
相關文章
相關標籤/搜索