257. Binary Tree Paths

26 年 3 月 1 日 星期日
192 字
1 分钟
Screenshot 2026-03-01 at 9.00.53 pm
js
/**
 * 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
 * @return {string[]}
 */
var binaryTreePaths = function (root) {
  const ans = []
  const path = []
  const backTracking = (node) => {
    if (node === null) {
      return
    }
    path.push(node.val)
    if (node.left === null && node.right === null) {
      ans.push(path.join('->'))
      path.pop() // ⚠️注意要pop,防止叶子节点一直在path里
      return
    }
    backTracking(node.left)
    backTracking(node.right)
    path.pop() // 恢复现场,撤销上面的 path.push(node.val.toString());
  }
  backTracking(root)
  return ans
}
js
var binaryTreePaths = function (root) {
  const ans = []
  const path = []
  function dfs(node) {
    if (node === null) {
      return
    }
    path.push(node.val.toString())
    if (node.left === null && node.right === null) {
      // 叶子节点
      ans.push(path.join('->'))
    } else {
      dfs(node.left)
      dfs(node.right)
    }
    path.pop() // 恢复现场,撤销上面的 path.push(node.val.toString());
  }
  dfs(root)
  return ans
}

文章标题:257. Binary Tree Paths

文章作者:Sirui Chen

文章链接:https://blog.siruichen.me/posts/257_binary_tree_paths[复制]

最后修改时间:


商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。
本文采用CC BY-NC-SA 4.0进行许可。