
链表
LeetCode 刷题 -- 链表
只不停
不积跬步,无以至千里。
展开
-
LeetCode解题--奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2-&g...原创 2020-02-21 17:48:10 · 105 阅读 · 0 评论 -
LeetCode解题 --分隔链表
给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。返回一个符合上述规则的链表的列表。举例: 1->2->3->4, k = 5 // 5 结果 ...原创 2020-02-21 17:27:00 · 195 阅读 · 0 评论 -
LeetCode 解题- -链表中的两数相加
插入结点:假设temp指向要插入位置的前一个结点:新插入结点.next = temp.next;temp.next = 新插入结点;445. 两数相加给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,...原创 2020-02-21 14:11:43 · 204 阅读 · 0 评论 -
LeetCode 解题 --两两交换链表中的结点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3./** * Definition for singly-linked list. * public class ListNode { * int val...原创 2020-02-21 12:40:57 · 151 阅读 · 0 评论 -
LeetCode 解题 --链表中的倒数第K个结点
19. 删除链表中倒数第N个结点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.class Solution { public ListNode removeNthFromEnd(ListNode...原创 2020-02-21 11:18:27 · 578 阅读 · 0 评论 -
LeetCode解题--合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */c...原创 2020-01-22 22:07:31 · 100 阅读 · 0 评论 -
LeetCode解题--删除某一指定的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * List...原创 2020-01-22 21:37:50 · 390 阅读 · 0 评论 -
JAVA语言实现单链表的增删改查
package yu.practice03.Linkedlist;import org.w3c.dom.ls.LSOutput;import java.util.Stack;public class singlelistDemo { public static void main(String[] args) { PersonNode person01 = ne...原创 2020-01-22 16:41:34 · 325 阅读 · 0 评论