面试算法-163-两两交换链表中的节点

题目

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

示例 1:

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

输出:[2,1,4,3]

java 复制代码
class Solution {
    public ListNode swapPairs(ListNode head) {
        if (head == null || head.next == null) {
            return head;
        }
        ListNode dummy = new ListNode(0);
        dummy.next = head;

        ListNode p1 = dummy;
        ListNode p2 = head;
        ListNode p3 = head.next;
        ListNode next = null;
        while (p3 != null) {
            next = p3.next;

            p1.next = p3;
            p3.next = p2;
            p2.next = next;

            p1 = p2;
            p2 = next;
            p3 = p2 == null ? null : p2.next;
        }
        return dummy.next;
    }
}
相关推荐
SmartBrain3 分钟前
技术总结:VLLM部署Qwen3模型的详解
开发语言·人工智能·算法·vllm
weixin_477271696 分钟前
第四正:关键(马王堆帛书《老子》20)
人工智能·算法·图搜索算法
玄〤8 分钟前
枚举问题的两大利器:深度优先搜索(DFS)与下一个排列(Next Permutation)算法详解(Java版本)(漫画解析)
java·算法·深度优先·dfs
weixin_477271699 分钟前
第三正:结构(马王堆帛书《老子》2)
算法·图搜索算法
uesowys11 分钟前
算法开发指导-数据结构-Tree
数据结构·算法·
小冻梨66611 分钟前
ABC445 C - Sugoroku Destination题解
c++·算法·深度优先·图论·
啊阿狸不会拉杆19 分钟前
《计算机视觉:模型、学习和推理》第 6 章-视觉学习和推理
人工智能·学习·算法·机器学习·计算机视觉·生成模型·判别模型
道法自然|~22 分钟前
BugCTF猪圈密码
算法
52Hz11822 分钟前
力扣33.搜索旋转排序数组、153.寻找排序数组中的最小值
python·算法·leetcode
DeepModel24 分钟前
【回归算法】高斯过程回归详解
算法·回归