zoukankan      html  css  js  c++  java
  • 利用层次遍历原理构建二叉树

    层次遍历构建二叉树:

    1.定义二叉树节点:

    1 function TreeNode(val){
    2     this.val = val;
    3     this.left = this.right = null;
    4 }

    2.层次遍历构建二叉树:

     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.测试

    //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);
  • 相关阅读:
    002-mybatis主配置文件
    001-mybatis框架
    mybatis学习
    tcp连接与释放
    浏览器输入url的全过程
    设备
    读写分离(三)
    读写分离(二)
    读写分离(一)
    主从复制(三)
  • 原文地址:https://www.cnblogs.com/davidxu/p/9031055.html
Copyright © 2011-2022 走看看