![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
kkkkuuga
这个作者很懒,什么都没留下…
展开
-
leetcode117. 填充每个节点的下一个右侧节点指针 II
1.题目描述:2.层序遍历:代码与leetcode116. 填充每个节点的下一个右侧节点指针一摸一样,这种解法与二叉树的形状无关。3.直接迭代:详见注释。原创 2022-07-09 23:18:53 · 119 阅读 · 0 评论 -
leetcode707. 设计链表
1.题目描述:2.解法:单链表,避免空指针异常。class ListNode { int val; ListNode next; public ListNode (int val) { this.val = val; }}class MyLinkedList { ListNode head = new ListNode(-1);//虚拟头节点 public MyLinkedList() {} p.原创 2022-05-05 22:51:37 · 57 阅读 · 0 评论 -
leetcode142. 环形链表 II
1.题目描述:给定一个链表的头节点head,返回链表开始入环的第一个节点。如果链表无环,则返回null。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该链表中没有环。注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改链表。2.使用集合:/** * Definition for singly-linked list..原创 2022-05-04 22:40:32 · 502 阅读 · 0 评论 -
leetcode203. 移除链表元素
1.题目描述:给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。2.构建虚拟头节点:涉及到头节点删除操作逻辑会不同,一般删除的逻辑为temp.next = temp.next.next,根据temp.next的val值来找到待删除元素,temp.next为末位节点也无妨。根据构建一个虚拟头节点,即可全部采用相同的判断逻辑。/** * Definition for singly-linked list. * p原创 2022-04-18 15:38:20 · 456 阅读 · 0 评论 -
leetcode328. 奇偶链表
1.题目描述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。进阶:空间复杂度为O(1),时间复杂度为O(n)。2.集合解法:将节点放入集合中,按照奇偶数分别取出即可,注意链表间的指向关系,防止出现环,自己把实例画一遍就能搞清楚,直接上代码,时间空间复杂度均为O(n)。/** * Definition for singly-linked list. * public class ListNo原创 2022-01-03 21:13:43 · 533 阅读 · 0 评论 -
图解leetcode725. 分隔链表
1.题目描述:给你一个头结点为head的单链表和一个整数k,请你设计一个算法将链表分隔为k个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过1。这可能会导致有些部分为null。这k个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。返回一个由上述k部分组成的数组。2.解题思路:这道题有两个难点:①找出分割链表的方法;②将分割后的各个小链表以数组的形式返回。第一个问题分割链表的形式较容易能想到,对k取模和取余,取余所得的值按1分配到原创 2022-01-03 19:36:56 · 620 阅读 · 0 评论 -
leetcode234. 回文链表
1.题目描述:给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是,返回true;否则,返回false。进阶:用O(n)时间复杂度和O(1)空间复杂度解决此题。2.使用集合:用集合存储节点值后再判断,代码较简单如下。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} *.原创 2022-01-02 17:22:42 · 420 阅读 · 0 评论 -
leetcode445.两数相加 II
1.题目描述:给你两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字0之外,这两个数字都不会以零开头。2.集合解法:反向加往左进位我首先想到使用集合记录每个节点的val值然后使用工具类进行反转来解,硬着头皮改了好几次写下来,思路直接在代码中体现,推荐用栈。。。/** * Definition for singly-linked list. * public class ListNode {原创 2022-01-01 21:13:46 · 493 阅读 · 0 评论 -
图解leetcode24. 两两交换链表中的节点
1.题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即只能进行节点交换)。2.迭代解法:这种解法应该都会想到,但是代码实现的过程中,链表的指向很容易出错导致链表中出现环,先看图解如何交换1节点和2节点,看懂图解后代码也就写出来了。/** * Definition for singly-linked list. * public class ListNode { * int val; *原创 2021-12-29 21:28:10 · 538 阅读 · 0 评论 -
图解leetcode19. 删除链表的倒数第 N 个结点
1.题目描述:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。2.普通解法:遍历两次链表,第一次得到链表长度,第二次找到倒数第n个结点并且删除,删除通过操作前驱结点完成,官解定义了一个方法和虚拟头结点,大同小异,代码如下:class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode temp = head , temp1 = head; .原创 2021-12-28 20:58:18 · 545 阅读 · 0 评论 -
图解leetcode83.删除排序链表中的重复元素
1.题目描述:存在一个按升序排列的链表,给你这个链表的头节点head,请你删除所有重复的元素,使每个元素只出现一次。返回同样按升序排列的结果链表。2.双指针遍历:遍历链表,找到最后出现的重复元素的后一节点置为temp.next即可,思路直接见代码和图解,刚写出来的代码比较繁琐,优化时发现几行代码功能重复了,最后自己写的代码提交成功结果不错,有点小开心。class Solution { public ListNode deleteDuplicates(ListNode hea原创 2021-12-28 11:54:01 · 391 阅读 · 0 评论 -
leetcode21. 合并两个有序链表
1.题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。2.普通解法:遍历输入的两个链表,比较val值的大小,直接见代码。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this..原创 2021-12-27 17:41:14 · 208 阅读 · 0 评论 -
图解leetcode206.反转链表
1.题目描述:给你单链表的头节点head,请你反转链表,并返回反转后的链表。2.使用list集合记录节点信息再取出,思路较简单,直接放代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * .原创 2021-12-22 13:31:38 · 345 阅读 · 0 评论 -
图解leetcode160.相交链表
1.题目描述:给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。此题需要注意两点:头节点为链表的第一个节点而非虚拟节点;相交的节点不是指val值相同,而是内存中地址值指向相同的节点。(示例1中A链表两个4非相同节点因为next所指向不同)2.暴力解法:在遍历A链表的同时,遍历B链表,判断是否存在指向同一个地址值的节点,存在则输出该节点,不存在则返回null。时间复杂度O(m * n),代码较简单如下:/**.原创 2021-12-21 16:13:06 · 104 阅读 · 0 评论