从叶结点开始的最小字符串

988. 从叶结点开始的最小字符串

目录

1. 思路一

  • 还是找到所有路径
  • 然后使用 abcdefghijklmnopqrstuvwxyz 映射成字符串
  • 使用内置的 reverse 和 sort 排好序,
  • 然后返回第一个即可
var smallestFromLeaf = function (root) { let res = []; function traverse(root, path) { if (!root) { return; } if (!root.left && !root.right) { path.push(root.val); res.push([...path]); path.pop(); } path.push(root.val); traverse(root.left, path); traverse(root.right, path); path.pop(); } traverse(root, []); let chars = "abcdefghijklmnopqrstuvwxyz"; res = res.map((item) => { return item.map((it) => { return chars[it]; }); }); res = res.map((item) => { return item.reverse().join(""); }); res.sort(); return res[0]; };

2. 思路二:用 path 维护递归遍历的路径,到达叶子节点的时候判断字典序最小的路径

这种解法不需要那么多代码

可能需要 charCodeAt 方法