addOneRowJavascirpt
unknown
javascript
a year ago
1.2 kB
8
Indexable
Never
/** * Definition for a binary tree node. * function TreeNode(val, left, right) { * this.val = (val===undefined ? 0 : val) * this.left = (left===undefined ? null : left) * this.right = (right===undefined ? null : right) * } */ /** * @param {TreeNode} root * @param {number} val * @param {number} depth * @return {TreeNode} */ var addOneRow = function(root, val, depth) { if (depth === 1) { const node = new TreeNode(val); node.left = root; return node; } insertHelper(val, root, 1, depth); return root; }; function insertHelper(value, node, depth, n) { if (node === null) return; // di level yg kita mau, tinggal lakuin // operasi insert linkedlist data if (depth == n - 1) { let tempLeft = node.left; let tempRight = node.right; node.left = new TreeNode(value); node.left.left = tempLeft; node.right = new TreeNode(value); node.right.right = tempRight; } // pakai recursive kalau belum dilevel yang mau di insert valuenya else { insertHelper(value, node.left, depth + 1, n); insertHelper(value, node.right, depth + 1, n); } }