两两交换链表中的节点 - LeetCode 热题 30

大家好!我是曾续缘🤖

今天是《LeetCode 热题 100》系列

发车第 30 天

链表第 9 题

❤️点赞 👍 收藏 ⭐再看,养成习惯

两两交换链表中的节点

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

示例 1:

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

示例 2:

输入:head = []
输出:[]

示例 3:

输入:head = [1]
输出:[1]

提示:

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

解题方法

这道题目要求将链表中相邻的节点两两交换,并返回交换后的链表头节点。在不修改节点内部值的情况下完成交换。我们使用递归的方法解决:

  1. 首先,判断链表是否为空或只有一个节点,如果是则直接返回原链表头节点,因为无需进行交换。
  2. 为了方便理解,定义两个指针,firstsecond,分别指向当前需要交换的两个节点。
  3. 接着是递归解决子问题,递归调用 swapPairs 函数,传入参数:除了firstsecond的链表,得到的是交换后的子链表的头结点,也就是second的下一个结点。
  4. 最后,将 firstnext 指针指向 second,完成交换。
  5. 返回交换后的链表头节点,即 first 节点。

Code

/**
 * 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 swapPairs(ListNode head) {
        if(head == null || head.next == null){
            return head;
        }
        ListNode first = head.next, second = head;
        second.next = swapPairs(head.next.next);
        first.next = second;
        return first;
    }
}

相关推荐

  1. leetcode24. 交换节点

    2024-04-13 12:30:03       66 阅读
  2. LeetCode [24] 交换节点

    2024-04-13 12:30:03       69 阅读
  3. Leetcode】24. 交换节点

    2024-04-13 12:30:03       65 阅读
  4. LeetCode24.交换节点

    2024-04-13 12:30:03       67 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 12:30:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 12:30:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 12:30:03       87 阅读
  4. Python语言-面向对象

    2024-04-13 12:30:03       97 阅读

热门阅读

  1. 基于可变形卷积的大规模视觉基础模型的探索

    2024-04-13 12:30:03       47 阅读
  2. 安卓开发 网络编程 OKHTTP 的使用

    2024-04-13 12:30:03       33 阅读
  3. 最长重复子数组,最大子序和,最长公共子序列

    2024-04-13 12:30:03       40 阅读
  4. STL - list

    2024-04-13 12:30:03       40 阅读
  5. 【C/C++基础知识】const 关键字

    2024-04-13 12:30:03       99 阅读
  6. Opentelemetry——Signals-Metrics

    2024-04-13 12:30:03       30 阅读