* @param {Number} value 当前结点的值
* @param {Node} left 当前结点的左子结点
* @param {Node} right 当前结点的右子结点
constructor(value, left, right) {
* @param {Node} node 被添加的结点
* @param {Node} pNode 父结点
* @param {Node} node 当前结点
* @param {Boolean} isLeft 是否左侧添加,如果为false则是右侧添加
addChildNode(pNode, node, isLeft) {
* @param {Number} index 索引(下标)
bTree.addRoot(new Node(6, null, null));
bTree.addChildNode(bTree.getNode(0), new Node(2, null, null), true);
bTree.addChildNode(bTree.getNode(0), new Node(3, null, null), false);
bTree.addChildNode(bTree.getNode(1), new Node(-1, null, null), true);
bTree.addChildNode(bTree.getNode(1), new Node(3, null, null), false);
bTree.addChildNode(bTree.getNode(2), new Node(0, null, null), true);
* @param {Node} node 树的结点
* @param {Number} target 题目要求的目标值
function hasPathSum(node, target) {
if (!node.left && !node.right) {
return node.value == target;
return hasPathSum(node.left, /*关键*/ target - node.value);
return hasPathSum(node.right, /*关键*/ target - node.value);
console.log(hasPathSum(bTree.getNode(0), 7)); //>> true