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

代码随想录

java 复制代码
class Solution {
    // 举例子:假设两个节点 1 -> 2
    // 那么 head = 1; next = 2; next.next = null
    // 那么swapPairs(next.next),传入的是null,再下一次递归中直接返回null
    // 因此 newNode = null
    // 所以 next.next = head; => 2.next = 1; 2 -> 1
    //      head.next=  newNode; => 1.next = null; 1->null
    // 所以 2->1->null
    // 最终返回 next,即返回 2
    public ListNode swapPairs(ListNode head) {
        
        if(head == null || head.next == null)
            return head;

        ListNode next = head.next;

        ListNode newNode = swapPairs(next.next);


        next.next = head;

        head.next = newNode;

        return next;
    }
    
}
相关推荐
lsnm4 分钟前
【LINUX网络】IP——网络层
linux·服务器·网络·c++·网络协议·tcp/ip
狗头大军之江苏分军17 分钟前
iPhone 17 vs iPhone 17 Pro:到底差在哪?买前别被忽悠了
前端
小林coding17 分钟前
再也不怕面试了!程序员 AI 面试练习神器终于上线了
前端·后端·面试
刘婉晴26 分钟前
【Java】NIO 简单介绍
java·nio
文心快码BaiduComate29 分钟前
WAVE SUMMIT深度学习开发者大会2025举行 文心大模型X1.1发布
前端·后端·程序员
babytiger29 分钟前
python 通过selenium调用chrome浏览器
前端·chrome
passer98136 分钟前
基于webpack的场景解决
前端·webpack
渣哥44 分钟前
聊聊我和 ArrayList、LinkedList、Vector 的“一地鸡毛”
java
浮游本尊1 小时前
Java学习第20天 - 性能优化与监控
java