• 利用层次遍历原理构建二叉树


    层次遍历构建二叉树:

    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);
  • 相关阅读:
    Binary Tree Paths
    Implement Stack using Queues
    Path Sum II
    Path Sum
    Plus One
    Add Digits
    Missing Number
    H-Index II
    H-Index
    Ugly Number II
  • 原文地址:https://www.cnblogs.com/davidxu/p/9031055.html
Copyright © 2020-2023  润新知