SOURCE

console 命令行工具 X clear

                    
>
console
(function () {

  /**
   * 首先我们定义一个Node的构造函数
   */
  function Node(data) {
    this.left = null;
    this.right = null;
    this.data = data;
  }

  /**
   * 二叉树的创建
   * 我们规定用数字0表示为空节点
   */
  function createTree (data) {
    let dat = data.shift();
    let p = null;

    if (dat != 0) {
      p = new Node(dat);
      p.left = createTree(data);
      p.right = createTree(data);
    }

    return p;
  }

  function prevTraverse (node) {
      if (node === null) return;

      prevTraverse(node.left);
      console.log(node.data);
      prevTraverse(node.right);
  }

  var rob1 = function(root) {
    var l, r;
    if (root !== null) {
        var left =[];
        var right = [];
        left = rob1(root.left);
        right = rob1(root.right);
        console.log(root.data);
        l = Math.max(left[0], left[1]) + Math.max(right[0], right[1]);
        r = left[0] + right[0] + root.data;
    }
    return Math.max(l, r);
    }


var maxDepth = function(root) {
  if (root === null) {
    return 0;
  } else {
    var leftDepth = maxDepth(root.left),
        rightDepth = maxDepth(root.right);
    var childDepth = leftDepth > rightDepth ? leftDepth : rightDepth;
    return 1 + childDepth;
  }
  }



// 构造一棵二叉树
let arr = [1,2,4,0,0,5,0,0,3,6,0,0,7,0,0],
    root = createTree(arr);
    //prevTraverse(root);
//    var bb = rob1(root);
//     console.log("bb",bb);
    var bb = maxDepth(root);

})();
https://www.jianshu.com/p/3eee17f3c6f4