Leetcode 24:Swap Nodes in Pairs
2021/7/11 11:08:04
本文主要是介绍Leetcode 24:Swap Nodes in Pairs,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Leetcode 24:Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.
说人话:
将链表中元素每两个交换一下。
举例:
![image-20210206104541067](/upload/202107/11/202107111108029726.png)
[法1] 穿针引线
思路
本题是比较复杂的穿针引线。首先我们需要定义 4 个指针:
- pre:交换结点对的前一个结点
- node1:第一个要交换的结点
- node2:第二个要交换的结点
- next:交换结点对的下一个节点
交换过程如下图:
![image-20210206105046375](/upload/202107/11/202107111108033662.png)
pre->next = node2
node2.next = node1
node1.next = next;
拉直后:
![image-20210206105126066](/upload/202107/11/202107111108037910.png)
交换后继续往后交换:
p = node1
当没有下一轮需要交换的时候(pre.next == null)就完成了。
代码
/** * 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) { //虚拟头结点 ListNode dummyHead = new ListNode(0,head); //前一个节点 ListNode pre = dummyHead; //穿针引线 while(pre.next != null){ //第一个节点 ListNode node1 = pre.next; if(node1 == null){ break; } //第二个节点 ListNode node2 = node1.next; if(node2 == null){ break; } //下一结点 ListNode next = node2.next; //交换 pre.next = node2; node2.next = node1; node1.next = next; pre = node1; } return dummyHead.next; } }
提交结果
![image-20210206105607166](/upload/202107/11/202107111108042157.png)
代码分析
- 时间复杂度:O(n)
- 空间复杂度:O(1)
这篇关于Leetcode 24:Swap Nodes in Pairs的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain
- 2024-06-19EntBot.ai: AI Website Chatbot for Product Guides and Development Doc
- 2024-06-17zero-shot-learning-definition-examples-comparison
- 2024-06-06Package Easy(基于 NSIS 的打包exe安装包工具)使用方法-icode9专业技术文章分享
- 2024-06-06基于 casdoor 的 ELK 开源登录认证解决方案: elk-auth-casdoor-icode9专业技术文章分享
- 2024-05-29Elasticsearch慢查询日志配置