[路飞]_算法题题解思路

100 阅读1分钟

1,栈_有效的括号

给定一个只包括"()""{}""[]"的字符串,判断字符创是否有效

满足的条件: 1.左括号必须用相同类型的右括号闭合 2.左括号必须已正确的顺序闭合

输入:'()'
输出:true
输入:'(}'
输出:false

image.png

2,二叉树的前序遍历

二叉树

image.png

  1. 设定一个空数组存
  2. 节点值先访问根节点(递归遍历)如果节点为空,终止递归;
  3. 再访问当前节点的左子树;
  4. 若当前节点无左子树,则访问当前节点的右子树
function obj(root) {
    const arr = []
    function binary_tree(root) {
        if (root === null) return;
        arr.push(root.val);
        binary_tree(root.left);
        binary_tree(root.right);
    }
    binary_tree(root);
    return arr;
};

3.排序_计数排序

以数组元素值为键,出现次数为值存进一个临时数组,最后再遍历这个临时数组还原回原数组

image.png