美文网首页
30. 两两交换链表中的节点

30. 两两交换链表中的节点

作者: 努力生活的西鱼 | 来源:发表于2024-11-21 09:43 被阅读0次
1. 题目描述

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

2. 题解
public class Solution30 {

    public ListNode swapPairs(ListNode head) {
        // 创建一个虚拟头节点,方便操作
        ListNode dummy = new ListNode(0);
        dummy.next = head;

        // 初始化指针
        ListNode prev = dummy;

        while (prev.next != null && prev.next.next != null) {
            // 定义要交换的两个节点
            ListNode first = prev.next;
            ListNode second = prev.next.next;

            // 交换节点
            first.next = second.next;
            second.next = first;
            prev.next = second;

            // 移动prev指针
            prev = first;
        }

        // 返回新的头节点
        return dummy.next;
    }

}

相关文章

网友评论

      本文标题:30. 两两交换链表中的节点

      本文链接:https://www.haomeiwen.com/subject/astgjjtx.html