Input: A binary tree as following: 4 / \ 2 6 / \ / 3 1 5 v = 1 d = 2 Output: 4 / \ 1 1 / \ 2 6 / \ / 3 1 5 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-one-row-to-tree
/** * @param {number} cd:current depth,递归当前深度 * @param {number} td:target depth, 目标深度 */var traversal = function (node, v, cd, td) { // 递归到目标深度,创建新节点并返回 if (cd === td) { // return 新节点 } // 向左子树递归 if (node.left) { node.left = traversal (node.left, v, cd + 1, td); } // 向右子树递归 if (node.right) { node.right = traversal (node.right, v, cd + 1, td); } // 返回旧节点 return node; }; /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } *//** * @param {TreeNode} root * @param {number} v * @param {number} d * @return {TreeNode} */var addOneRow = function (root, v, td) { // 从根节点开始递归 traversal (root, v, 1, td); return root; };