当前位置:   article > 正文

43. 重排链表_重排链表 时间限制: 1s类别: ds:数组与链表->链表--较难 问题描述 : 给定一个单链

重排链表 时间限制: 1s类别: ds:数组与链表->链表--较难 问题描述 : 给定一个单链

143. 重排链表

难度中等633收藏分享切换为英文接收动态反馈

给定一个单链表 L 的头节点 head ,单链表 L 表示为:

L0 → L1 → … → Ln-1 → Ln
请将其重新排列后变为:

L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …
  • 1

不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

image

示例 1:

img

输入: head = [1,2,3,4]
输出: [1,4,2,3]
  • 1
  • 2

示例 2:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lGmjIySU-1627734441239)(https://assets.codetop.cc/user/note/17888_r5LeCt14AI9RaylE.png)]

img

输入: head = [1,2,3,4,5]
输出: [1,5,2,4,3]
  • 1
  • 2

算法分析

1、使用快慢指针,找出链表的中心节点,分成两个链表

2、将右边的链表进行反转

3、合并两个链表

题意:将一个链表的第kk项和倒数第kk项放在一起。

/**
 * 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; }
 * }
 */
class Solution {
   
    public ListNode middleNode(ListNode head){
   
        ListNode fast 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/226655
推荐阅读
相关标签
  

闽ICP备14008679号