
链表
链表相关题目
欲游山河
无
展开
-
剑指 Offer 25. 合并两个排序的链表
题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 限制: 0 <= 链表长度 <= 1000 题解: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next;原创 2020-09-21 16:22:06 · 156 阅读 · 0 评论 -
19. 删除链表的倒数第N个节点
题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 题解: /** * Definition for singly-linked list. * public class ListNode { * int val;原创 2020-09-17 19:37:54 · 200 阅读 · 0 评论 -
2. 两数相加
题目: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 题解: ...原创 2020-09-16 17:46:50 · 118 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
题目: 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数原创 2020-09-16 06:55:47 · 189 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
题目: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. ...原创 2020-09-16 06:55:32 · 93 阅读 · 0 评论 -
剑指 Offer 24. 反转链表
题目: 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 题解: /** * Definition for singly-linked list. * public class ListNode { * int val; * List原创 2020-09-16 06:55:10 · 158 阅读 · 0 评论