数据结构与算法
文章平均质量分 77
Jamki小烽烽
这个作者很懒,什么都没留下…
展开
-
反转链表的递归解法与非递归解法
反转链表 1. 非递归解法: 解题思路: 定义三个指针: cur , p1 p2, cur与p1为了完成指针逆指, p2保存下一个应当逆转的节点,防止迷路 每次让 p1 的next 指向 cur,实现一次局部反转 局部反转完成之后,cur p1和 p2 同时往前移动一个位置 循环上述过程,直至 p1到达链表尾部 思路图解: 代码实现: var reverseList = function(head) { if(!head) return null let cur = null原创 2020-12-05 13:31:17 · 183 阅读 · 0 评论 -
算法刷题系列--leetcode -题#160#404#437
近期刷题 leetcode-437-路径总和 III leetcode-404-左叶子之和 leetcode-160-相交链表 leetcode-437-路径总和 III 题目描述: 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 示例: root = [10,5,-3,3原创 2020-06-27 13:42:50 · 252 阅读 · 0 评论 -
算法刷题系列--leetcode #415 字符串相加
字符串相加 题目描述: 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串 转换为整数形式。 例: 输入 :“37459670” “4567087” 输出 : “42026757” 解题思路 题目意思就是说拿两个数原创 2020-06-07 22:03:18 · 166 阅读 · 0 评论 -
给我十分钟,搞定二叉树的遍历!
二叉树定义 二叉树是一种树形结构(感觉是废话),它有如下特点: 每个节点最多只有两棵子树,即不存在度大于2的节点(度就是树结点的直接子结点数) 二叉树的子树有左右之分,其次序不能任意颠倒 二叉树有什么用? 那用处可就大了,就拿我们前端熟悉的来说,抽象语法树(BST)听过吧,babel在编译的时候构建的BST就是一棵二叉树,vue里面的diff,虚拟dom听过吧,这些都离不开二叉树。二叉树的威力远不止如此,利用二叉树前序遍历显示目录结构,利用二叉树中序遍历实现表达式树,在编译器里十分有用,利用二叉树后续遍原创 2020-06-01 00:13:05 · 288 阅读 · 0 评论