
线性表
leetCode相关
059
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
快乐数(快慢指针)
一、题目 二、代码 暴力法 class Solution { //19 / 10 = 1...9 9 / 10 = 0....9 public List<Integer> getBits(int n){ int remainder = 0; List<Integer> bits = new LinkedList<>(); while(n != 0){ remain.原创 2021-02-10 17:08:20 · 101 阅读 · 0 评论 -
对链表进行插入排序
思路:新建一个含虚拟节点的链表,然后遍历给定的链表,依次插入新建的链表 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode insertionSortList(ListNode he原创 2020-08-22 13:19:50 · 127 阅读 · 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) { this.val = val; this.next = next; } *...原创 2020-08-21 12:40:28 · 114 阅读 · 0 评论 -
删除链表中的节点
不是真正的删除节点,而是通过赋值的方式 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public void deleteNode(ListNode node) { node.val =...原创 2020-08-14 13:14:23 · 88 阅读 · 0 评论 -
环形链表
快慢指针 /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public boolean hasCycle(ListNod...原创 2020-08-13 22:18:13 · 99 阅读 · 0 评论 -
移除链表元素
class Solution { public ListNode removeElements(ListNode head, int val) { //引入虚拟头结点 ListNode dummy=new ListNode(0); dummy.next=head; ListNode p=dummy; while(p.next!=null){ if(p.next.val==val){ .原创 2020-08-13 22:11:47 · 98 阅读 · 0 评论 -
删除排序链表中的重复元素
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { //使用虚拟节点,统一删除操作 ...原创 2020-08-13 22:07:45 · 95 阅读 · 0 评论 -
链表的中间结点
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode middleNode(ListNode head) { List<ListNode> node = ...原创 2020-08-13 22:04:12 · 102 阅读 · 0 评论 -
分隔链表
一、题目 二、代码 分别创建小于特定值的链表和大于等于特定值得链表 遍历原链表,并将元素转移到符合条件的链表中 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode par..原创 2020-07-25 11:06:47 · 80 阅读 · 0 评论 -
旋转链表
一、题目 二、代码 旋转的步数过多,需要取余 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode rotateRight(ListNode head, int k) { ..原创 2020-07-20 11:18:45 · 91 阅读 · 0 评论 -
反转从位置 m 到 n 的链表(递归)
一、题目 二、代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { private ListNode successor = null; // 后继节点 ListNode reverseBe.原创 2020-07-04 20:10:55 · 200 阅读 · 0 评论 -
两种方法解决反转链表
一、题目 二、代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode reverseList(ListNode head) { //递归出口 .原创 2020-07-03 13:51:11 · 178 阅读 · 0 评论 -
两两交换链表中的节点(递归)
一、题目 二、代码 思路:递归的方式进行交换 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode swapPairs(ListNode head) { if.原创 2020-06-23 20:47:02 · 150 阅读 · 0 评论 -
删除链表的倒数第N个节点
一、题目 二、代码 思路: 遍历一遍链表,获取节点个数 引入虚拟节点,根据链表中倒数与正数的关系,确定正向的位置。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode ..原创 2020-06-15 21:23:59 · 135 阅读 · 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) { this.val = val; this.next.原创 2020-06-10 19:40:00 · 114 阅读 · 0 评论 -
使用链表进行两数的相加
一、思路 注意: 进位的处理 引入虚拟节点统一操作 二、代码 此代码要考虑,其中一个链表为空,另一个链表不为空的情况,较为繁琐。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public...原创 2020-06-03 15:39:35 · 157 阅读 · 0 评论