leetcode24两两交换链表中的节点 快慢指针实现

问题描述:

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:

复制代码
输入:head = [1,2,3,4]
输出:[2,1,4,3]

示例 2:

复制代码
输入:head = []
输出:[]

示例 3:

复制代码
输入:head = [1]
输出:[1]

提示:

  • 链表中节点的数目在范围 [0, 100]
  • 0 <= Node.val <= 100

上代码,拿去即可运行:

java 复制代码
package onlyqi.daydayupgo06.leetcode;

import lombok.AllArgsConstructor;
import lombok.Data;

public class Leetcode24 {
    public static void main(String[] args) {
        ListNode listNode6 = new ListNode(6, null);
        ListNode listNode5 = new ListNode(5, listNode6);
        ListNode listNode4 = new ListNode(4, listNode5);
        ListNode listNode3 = new ListNode(3, listNode4);
        ListNode listNode2 = new ListNode(2, listNode3);
        ListNode listNode1 = new ListNode(1, listNode2);
        ListNode listNode = swapPairs(listNode1);

        while (listNode != null) {
            System.out.print(listNode.val + "   ");
            listNode = listNode.next;
        }
    }


    public static ListNode swapPairs(ListNode listNode) {
        ListNode dummy = new ListNode(0, listNode);
        ListNode pre = dummy;

        while (pre.next != null && pre.next.next != null) {
            ListNode first = pre.next;
            ListNode second = pre.next.next;


            first.next=second.next;
            second.next=first;
            pre.next=second;

            pre=first;

        }

        return dummy.next;
    }

    @Data
    @AllArgsConstructor
    static class ListNode {
        int val;
        ListNode next;


    }
}

运行结果:

我要刷300道算法题,第150道 。 尽快刷到200,每天搞一道 。

相关推荐
aaaameliaaa7 小时前
字符函数和字符串函数
c语言·笔记·算法
城管不管8 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
月疯9 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡9 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯9 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
Achou.Wang9 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One98510 小时前
高进度算法模板速记(待完善)
java·前端·算法
土豆.exe12 小时前
Fastjson2 2.0.53 哈希碰撞 RCE:从原理到三种打法
算法·哈希算法
黄河123长江12 小时前
有限Abel群的结构()
算法
阿米亚波13 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl