给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
从根节点开始递归遍历
递归传入的节点为: null,递归结束存在 val,则拼接存在左右节点则递归遍历左右记得点,并且传入已拼接的字符给后续递归继续拼接左右节点为 null 则遇到叶子节点,将拼接的字符存入结果数组 /** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {TreeNode} root * @return {string[]} */ var binaryTreePaths = function (root) { let _result = [] function dfs(node, path) { if (!node) return path += node.val.toString() if (node.left === null && node.right === null) { // 当前节点是叶子节点 _result.push(path) // 把路径加入到答案中 } else { path += '->' // 当前节点不是叶子节点,继续递归遍历 dfs(node.left, path) dfs(node.right, path) } } dfs(root, '') return _result }博客: 小书童博客
每天的每日一题,写的题解会同步更新到公众号一天一大 lee 栏目 欢迎关注留言
公号: 坑人的小书童