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

方法一:迭代,虚拟头结点

class Solution {public ListNode swapPairs(ListNode head) {ListNode dummyNode = new ListNode(0);dummyNode.next = head;ListNode prev = dummyNode;while(prev.next != null && prev.next.next != null){ListNode temp = head.next.next; //缓存nextprev.next = head.next;          //将prev的next改为head的nexthead.next.next = head;          //将head.next(prev.next)的next,指向headhead.next = temp;               //将head的next接上缓存的tempprev = head;                    //步进1位head = head.next;               //步进1位}return dummyNode.next;}
}

方法二:1.递归

class Solution {public ListNode swapPairs(ListNode head) {if (head == null || head.next == null) {return head;}ListNode one = head;ListNode two = one.next;ListNode three = two.next;two.next = one;one.next = swapPairs(three);return two;}
}

方法二:2.递归

class Solution {public ListNode swapPairs(ListNode head) {// base case 退出提交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;}
}

24.两两交换链表中的节点相关推荐

  1. LeetCode-链表-24. 两两交换链表中的节点

    24. 两两交换链表中的节点 思路:使用一个头节点,然后用cur指针指向头 /*** Definition for singly-linked list.* struct ListNode {* in ...

  2. Leetcode(24)——两两交换链表中的节点

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

  3. LeetCode 24.两两交换链表中的节点 C语言

    题目 24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3- ...

  4. LeedCode 24:两两交换链表中的节点

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

  5. 24. 两两交换链表中的节点

    24. 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 示例 1: 输入:head = [1 ...

  6. Java实现 LeetCode 24 两两交换链表中的节点

    24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-&g ...

  7. LeetCode 24:两两交换链表中的节点、1662. 检查两个字符串数组是否相等

    今天一道是单链表一道是String类的 一:LeetCode 24:两两交换链表中的节点 先来看一下题目信息 索引 题目意思就是把一个链表中的两两节点进行交换,题目给的例子是4个节点,是偶数个,两两节 ...

  8. LeetCode 23合并K个升序链表24两两交换链表中的节点

    维护不易,点赞再看,感谢支持 合并K个升序链表 题目描述 给你一个链表数组,每个链表都已经按升序排列. 请你将所有链表合并到一个升序链表中,返回合并后的链表. 示例 1: 输入:lists = [[1 ...

  9. 链表——24. 两两交换链表中的节点

    1 题目描述 两两交换链表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 2 题目示例 示例 2: 输入 ...

最新文章

  1. 自定义View步骤学习笔记
  2. 如何优雅地使用pdpipe与Pandas构建管道?
  3. CTF入门--二进制
  4. MONGODB 权限认证
  5. 分布式服务常见问题—访问量统计如何做?
  6. JDBC 出现references non-existing project XXX, launch configuration问题的解决办法
  7. 第一次执行时没有问题,重复执行会出错、GP循环
  8. 转行 AI 成为技术大牛,你需要理解这两项技术!
  9. 摘录一些介绍Linux DKMS的博客文章
  10. 【深度优先搜索】记忆化搜索 P1077 摆花
  11. 测测你的杀毒软件强弱等级吧!!!!!
  12. HmacSHA256算法实现消息认证
  13. 【Kaggle Quick, Draw!】涂鸦识别,AI与你同在
  14. C语言学生档案表设计——作业
  15. 有10亿个整数,要求选取重复次数最多的100个整数
  16. 找代做java,代做JAVA程序作业、代写学生信息查询系统、代做JAVA实验
  17. Linux下修改MTU值
  18. DEDE织梦网站首页仿制实战操作
  19. ESP32 LVGL8.1 ——Style local style 样式当地的风格 (Style 11)
  20. Android JNI 编译so库

热门文章

  1. GlusterFS集群文件系统
  2. 拓扑排序 Codeforces Round #290 (Div. 2) C. Fox And Names
  3. Spring Security的HTTP基本验证示例
  4. 创建虚拟交换机(New-VMSwitch)
  5. 通过输入方式在Android上进行微博OAuth登录
  6. MOQL--面向流的统计过滤技术
  7. 程序员面试金典——7.5平分的直线
  8. 空卡安装设置树莓派4B并安装opencv+QT
  9. matlab2016一条命令设置坐标轴标签旋转角度、字体大小和字体!
  10. 人工神经网络----Hebbian学习规则