从叶结点开始的最小字符串
目录
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
方法