![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode
_zh@xia
纵有疾风起,人生不言弃。
展开
-
24. 两两交换链表中的节点
题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. public ListNode swapPairs(ListNode head) { ListNode pre = new ListNod...原创 2020-02-10 22:45:34 · 81 阅读 · 0 评论 -
19. 删除链表的倒数第N个节点
题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 解题思路 一开始就让fast指针比slow指针快n+1个元素,接下来,两个指针都是一步一步来往下走。那么当fast指针走完时,slow指针就刚刚好停...原创 2020-02-10 21:25:21 · 103 阅读 · 0 评论 -
141. 环形链表
题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 解题思路 把链表比作一条跑道,链表中有环,那么这条跑道就是一条圆环跑道,在一条圆环跑道中,两个人有速度差,那么迟早两个人会相遇,只要相遇那么就说明有环。 public boolean hasCycle(L...原创 2020-02-10 21:17:56 · 228 阅读 · 0 评论 -
876. 链表的中间结点
题目描述 给定一个带有头结点 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 方法一 按顺序将每个结点放入数组 A 中。然后中间结点就是 A[A.Length/2] class Solution { public ListNode middleNode(ListNode head) { ListNode[] A = new List...原创 2020-02-10 21:09:46 · 70 阅读 · 0 评论 -
206. 反转链表
题目描述 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解题思路 假设存在链表 1 → 2 → 3 → Ø,我们想要把它改成 Ø ← 1 ← 2 ← 3。 在遍历列表时,将当前节点的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储...原创 2020-02-04 16:13:09 · 61 阅读 · 0 评论 -
242. 有效的字母异位词
题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true 说明: 你可以假设字符串只包含小写字母。 方法一: 解题思路 将两字符串转换成字符串数组,然后将两数组排序,在比较是否一致 class Solution { public boolean isAnagram(...原创 2020-02-04 15:37:54 · 77 阅读 · 0 评论 -
344.反转字符串
题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符 示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 解题思路 创建两个指...原创 2020-02-03 23:48:55 · 81 阅读 · 0 评论