随笔分类 - LeetCode算法笔记
摘要:合并两个有序链表 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 public class Solution { public ListNode MergeTwoLists(ListNode l1, ListNode l2) { if
阅读全文
摘要:反转链表 反转链表 反转一个单链表。 public class Solution { public ListNode ReverseList(ListNode head) { //链表为空则返回 if(head == null) return head; ListNode n = head; hea
阅读全文
摘要:环形链表 环形链表 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 public class Solution { public bool HasCycle(List
阅读全文
摘要:设计链表 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。 val 是当前节点的值,next 是指向下一个节点的指针/引用。 单链表节点类 LeetCode笔记中链表相关题目,若不单独说明,代码中使用的链表都是单链表,其节点类如下代码所示。
阅读全文
摘要:162. Find Peak Element 山脉数组的峰顶索引 704. Binary Search 二分查找
阅读全文
摘要:349. Intersection of Two Arrays 两个数组的交集
阅读全文
摘要:98. Validate Binary Search Tree 验证二叉搜索树 解题思路 ①整个递归过程类似于后序遍历,先遍历到了左子树的叶节点,开始比较,然后在返回时递归右节点,右节点符合后返回,开始验证父节点,以此类推。 104. Maximum Depth of Binary Tree 二叉树
阅读全文
摘要:622. Design Circular Queue 设计循环队列 解题思路 公式:tail=(tail+1)%n,n为队列长度。 入队时,tail后移,出队时,head后移。 记录count,判断队满和队空。 获取队尾元素时,因为入队时先记录数据再让tail改变, 所以需要让tail恢复变化,即(
阅读全文
摘要:20. Valid Parentheses 有效的括号 解题思路 将括号比较后者后,不同的入栈,相同的出栈,最后字符串遍历结束后栈为空则匹配成功。 155. Min Stack 最小栈 解题思路 使用链栈,实现基本的入栈出栈,遍历栈中元素,同时比较其值,取其中最小,最后返回最小值。 224. Bas
阅读全文
摘要:19. Remove Nth Node From End of List 删除倒数第N个结点 解题思路 声明两个指针,快指针先移动n次,然后快慢指针同时移动,直到快指针为null。 此时慢指针指向了倒数第n个结点的前驱结点,然后删除慢指针后继结点即可。 需要注意的是当删除倒数第n(n与链表长度相同)
阅读全文

浙公网安备 33010602011771号