![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
qq_39717513
这个作者很懒,什么都没留下…
展开
-
328. 奇偶链表
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性class Solution { public ListNode oddEvenList(ListNode head) { // 分别定义奇偶链表的 虚拟头结点 和 尾结点 ListNode oddHead = new ListNode(); ListNode oddTail = oddHead; L原创 2021-08-29 10:14:56 · 66 阅读 · 0 评论 -
24. 两两交换链表中的节点
1、栈class Solution { public ListNode swapPairs(ListNode head) { if(head==null || head.next==null) { return head; } //用stack保存每次迭代的两个节点 Stack<ListNode> stack = new Stack<ListNode>(); ListNode p = new ListNode(-1); ListNode cur =.转载 2021-08-29 09:51:03 · 51 阅读 · 0 评论 -
141. 环形链表 142.环形链表二
如果链表中存在环,则返回 true 。 否则,返回 false快慢指针public class Solution { public boolean hasCycle(ListNode head) { ListNode fast=head; ListNode slow=head; while(fast!=null&&fast.next!=null){ fast=fast.next.next;slow=slow原创 2021-07-18 21:06:54 · 68 阅读 · 0 评论 -
160. 相交链表
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode pa=headA,pb=headB; while(pa!=pb){原创 2021-07-17 22:24:13 · 85 阅读 · 1 评论 -
206. 反转链表&& 92. 反转链表 II && 25. K 个一组翻转链表
反转链表class Solution { public ListNode reverseList(ListNode head) { ListNode pre=null; ListNode cur=head; while(cur!=null){ ListNode temp=cur.next; cur.next=pre; pre=cur; cur=temp; } return pre转载 2021-07-15 10:42:31 · 52 阅读 · 0 评论 -
82. 删除排序链表中的重复元素&& 83. 删除排序链表中的重复元素
只保留原始链表中 没有重复出现 的数字思路由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。由于链表的头节点可能会被删除,因此我们需要额外使用一个哑节点(dummy node)指向链表的头节点。具体地,我们从指针 cur 指向链表的哑节点,随后开始对链表进行遍历。如果当前 cur.next 与 cur.next.next 对应的元素相同,那么我们就需要将cur.next 以及所有后面拥有相同元素值的链表节点全部删除。我们记下这转载 2021-07-15 09:43:39 · 59 阅读 · 0 评论