Swap Nodes in Pairs
程序员文章站
2022-03-05 08:13:17
...
题目
Given a linked list, swap every two adjacent nodes and return its head.
答案
recursion答案,很简洁,可惜只要recursion就不是O(1) space了
思路是swap current pairs, recursively swap later pairs
class Solution {
public ListNode swapPairs(ListNode head) {
if(head != null && head.next != null) {
ListNode next = head.next;
ListNode next2 = next.next;
next.next = head;
head.next = swapPairs(next2);
return next;
}
return head;
}
}
public class Solution {
public static ListNode swapPairs(ListNode head) {
if (head == null || head.next == null) return head;
ListNode first = head;
ListNode second = head.next;
ListNode previous = null, ret = second;
while(first != null && second != null) {
// swap first and second
first.next = second.next;
second.next = first;
if(previous != null) previous.next = second;
previous = first;
first = first.next;
if(first != null) second = first.next;
}
return ret;
}
}
上一篇: springboot项目快速集成日志文件。利用resources\logback-spring.xml文件配置log日志的打印包括info,debug和error分开动态保留最近日志
下一篇: TypeScript获取格式化日期
推荐阅读
-
Linux学习笔记(十四)磁盘管理(二):格式化、挂载以及Swap分区
-
linux清理swap和buffer/cache的方法
-
Centos7中添加、删除Swap交换分区的方法
-
Linux系统磁盘格式化以及手动增加swap分区
-
在Linux系统上使用交换文件扩展swap空间的方法
-
详细解读linux下swap分区的作用
-
Linux如何清理swap、buffer及cache等缓存
-
Shell脚本实现监控swap空间使用情况和查看占用swap的进程
-
Swap file ".BranchModel.class.php.swp" already exists!
-
Linux删除swap里的指定文件的方法