深圳定制网站建设,海南所有的网站建设类公司,网站功防教程,公司网站二维码生成器文章目录题目描述迭代法递归法参考文献题目描述
给你一个链表#xff0c;两两交换其中相邻的节点#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题#xff08;即#xff0c;只能进行节点交换#xff09;。
示例 1#xff1a;
输入两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。
示例 1
输入head [1,2,3,4] 输出[2,1,4,3] 示例 2
输入head [] 输出[] 示例 3
输入head [1] 输出[1]
提示
链表中节点的数目在范围 [0, 100] 内 0 Node.val 100
来源力扣LeetCode 链接https://leetcode.cn/problems/swap-nodes-in-pairs 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
迭代法 /*** 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(headnull||head.nextnull){return head;}ListNode resnew ListNode(0);res.nexthead;ListNode curres;while(cur.next!nullcur.next.next!null){ListNode nexthead.next;ListNode tmpnext.next;cur.nextnext;next.nexthead;head.nexttmp;curhead;headhead.next;}return res.next;}
}递归法 /*** 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(headnull||nullhead.next){return head;}ListNode nexthead.next;head.nextswapPairs(head.next.next);next.nexthead;return next;}
}参考文献
点击跳转 https://www.bilibili.com/video/BV1xa411A76q?p6vd_source0b5b75024b90934f32850d5e16883515