有时候Macbook的Excel会突然无法自动填充,即使出现了自动填充的小十字架,也不行。如何使用键盘来进行自动填充?

数据分析的神器一Numpy的详细介绍

  返回  

[LeetCode]725. 分隔链表(java实现)

2021/8/20 16:07:30 浏览:

[LeetCode]725. 分隔链表(java实现)

  • 1. 题目
  • 2. 读题(需要重点注意的东西)
  • 3. 解法
  • 4. 可能有帮助的前置习题
  • 5. 所用到的数据结构与算法思想
  • 6. 总结

1. 题目

在这里插入图片描述

2. 读题(需要重点注意的东西)

要求算法空间复杂度O(1)—不能使用额外的空间
要求时间复杂度为O(n)
思路:新建奇偶指针、遍历修改next指针、遍历完后将奇偶链表相连

3. 解法

/**
 * 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; }
 * }
 */
 // 要求算法空间复杂度O(1)---不能使用额外的空间
 // 要求时间复杂度为O(n)
 // 新建奇偶指针、遍历修改next指针、遍历完后将奇偶链表相连
class Solution {
    public ListNode oddEvenList(ListNode head) {
        if(head == null || head.next == null) return head;
        ListNode fast = head.next; // 偶链表
        ListNode slow = head; // 奇链表
        ListNode cur = fast; // 用于连接奇偶链表
        // 遍历修改next指向
        while(slow.next != null && fast.next != null){
            slow.next = fast.next;
            slow = fast.next;
            fast.next = slow.next;
            fast = slow.next;
        }
        // 将奇偶链表连接起来
        slow.next = cur;
        return head;
    }
}

4. 可能有帮助的前置习题

5. 所用到的数据结构与算法思想

  • Java数据结构—List(链表、顺序表的定义及其基本操作)

6. 总结

经典链表题目,对next指向修改的艺术

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号