链表
你好y
这个作者很懒,什么都没留下…
展开
-
(Java)力扣:两两交换链表中的节点
题目:思路:类似于链表反转,定义三个指针,但是不同的是每次步长为2代码:非递归写法:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode ne原创 2021-08-31 10:47:26 · 223 阅读 · 0 评论 -
(java)力扣:合并两个有序链表
题目:思路:类似于归并排序代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this原创 2021-08-30 11:38:19 · 110 阅读 · 0 评论 -
力扣:删除排序链表的重复元素
题目:注意:链表是排好序的,这就意味着重复的元素出现在相邻元素。代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { thi原创 2021-08-27 09:40:19 · 67 阅读 · 0 评论 -
力扣:环形链表
题目:思路:利用快慢指针,如果二者相遇,则说明是有环的,如果有节点为null,则说明是无环的代码:/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class So原创 2021-08-27 08:54:10 · 60 阅读 · 0 评论 -
力扣:删除链表的倒数第 N 个结点
删除链表的倒数第 N 个结点给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 300 <= Node.val <= 1001 <=原创 2021-08-26 09:39:30 · 113 阅读 · 0 评论 -
有环链表的环起点
题目:给定一个有环链表,实现一个算法返回环路的开头节点有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路思路:用hashset来判断重复元素,如果发现某个元素之前出现过,说明该链表存在环路,返回该节点。代码:package LianBiao;import java.util.HashSet;public class 有环链表的环起点 { //构建链表 public static class ListNode{原创 2021-08-24 09:07:49 · 122 阅读 · 0 评论 -
java---单链表加法
题目:有两个用链表表示的数,每个节点包含一个数位。这些树为是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode A,ListNode B,请返回A+B的结果思路:用递归来实现,递归的出口:A,B结点都为空,且进位数值也为0注意递归传递参数的设计,先判断是否为null,是则传递null,否则传递链表的next代码:package LianBiao;public class 链表加法 { //构建节点 p原创 2021-08-23 09:34:13 · 244 阅读 · 0 评论 -
用基准值将链表分区
编写代码,以给定值x为基准将链表分割为两部分,所有小于x的节点排在大于或等于x的节点之前。给定一个链表的头指针 ListNode pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变不要开辟新的空间,既不要新建节点开辟新的指针,...原创 2021-08-22 20:18:27 · 387 阅读 · 0 评论 -
单向链表删除链表中的某个节点
题目:实现一个算法,删除单向链表中间的某个节点,假设你只能访问该节点实例:输入单向链表a-b-c-d-e中的节点c结果,不返回任何数据,但该链表变为a-b-d-e给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true思路:复制后继,越过后继代码:package LianBiao;/** 实现一个算法,删除单向链表中间的某个节点,假设你只能访问该节点* 实例:* 输入单向链表a-b-c-d-e中的节点c* 结果,不反悔任何数据,但该链表变为a-b-原创 2021-08-21 09:05:31 · 918 阅读 · 0 评论 -
找出倒数第k个节点
package LianBiao;/** 找出倒数第k个节点:* 思路:* 定义两个指针A,B,先让间隔为0,之后让指针B向后移,* 到AB距离等于k,在一起向后移动,知道B为空,* A所指的值就是倒数第k个节点的值*/public class 找出倒数第k个节点 { /*定义一个节点*/ public static class Node{ Node next; Object value;原创 2021-08-20 09:39:25 · 114 阅读 · 0 评论