给你链表的头节点 head 和一个整数 k 。

交换 链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表 从 1 开始索引)。

示例 1:

输入:head = [1,2,3,4,5], k = 2
输出:[1,4,3,2,5]
示例 2:

输入:head = [7,9,6,6,7,8,3,0,9,5], k = 5
输出:[7,9,6,6,8,7,3,0,9,5]
示例 3:

输入:head = [1], k = 1
输出:[1]
示例 4:

输入:head = [1,2], k = 1
输出:[2,1]
示例 5:

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

提示:

链表中节点的数目是 n
1 <= k <= n <= 105
0 <= Node.val <= 100

思路:两个指针找到以后交换值即可。

/*** 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 swapNodes(ListNode head, int k) {ListNode cur = head;ListNode first = head;ListNode last = head;int count = 1;while (cur.next != null) {// 找到正数第k个节点if (count < k) {first = first.next;// 找到倒数第k个节点} else {last = last.next;}count++;cur = cur.next;}// 交换正数第k个节点和倒数第k个节点的值count = first.val;first.val = last.val;last.val = count;return head;}
}

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

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

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

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

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

  3. 力扣 两两交换链表中的节点

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

  4. (补)20200328:两两交换链表中的节点(leetcode24)

    两两交换链表中的节点 题目 思路与算法 代码实现 复杂度分析 题目 思路与算法 我们以给的例子1→2→3→4说明,因为只需要两两交换,因此最后得到2→1→4→3. 我们把过程写一下:1→2→3→4 到 ...

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

    24. 两两交换链表中的节点 方法一:迭代,虚拟头结点 class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy ...

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

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

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

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

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

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

  9. Python实现两两交换链表中的节点

    题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. Leetcode原题地址:https://leetcode-cn. ...

最新文章

  1. can与could区别
  2. a标签,选中当前菜单后高亮
  3. Error:java: 无效的目标发行版: 11解决方案
  4. 变分法理解2——基本方法
  5. 如何从知网下载学位论文的PDF?
  6. PHP怎么做斗地主,JavaScript实现斗地主游戏的思路_javascript技巧
  7. ad网络标号设置经验_AD9 设置网络标号作用域
  8. wps 的直接登录URL
  9. 华三华为交换机配置时间
  10. 485通信c语言编程linux,Rs485通信单片机C程序
  11. iOS开发 - ANPs推送通知
  12. 头歌--人脸识别系统--Face recognition 人脸识别
  13. MATLAB前馈神经网络newff
  14. netstat -i FLG含义
  15. 如何让你开发的游戏赚钱
  16. server多笔记录拼接字符串 sql_sqlserver 将多行数据查询合并为一条数据
  17. ubuntu安装加速神器apt-fast
  18. NVIDIA 显卡在 Ubuntu 下限制其功率的方法
  19. 【第69期】如何做顶级“新生代农民工”?这几本书为你打开大门
  20. laravel 清理缓存清理

热门文章

  1. dual mysql 获取序列_MySQL获取周、月、天日期,生成排序号
  2. PlacementBrowser源码分析
  3. 修改场景默认pawn的方法
  4. 初识WINCE的HIVE注册表
  5. WINCE 网卡控制
  6. Platform Builder实践之配置文件
  7. python相对路径下的shell_shell,python获取当前路径(脚本的当前路径) (aso项目记录)...
  8. idea 创建java文件_idea创建java文件 格式不对
  9. python读取单波段影像dem
  10. 【转】WebApi中的C#await / async,重点是什么?