leetcode题解-24. Swap Nodes in Pairs
来源:互联网 发布:老徐外设店淘宝 编辑:程序博客网 时间:2024/04/27 15:35
题意:给定一个链表,交换相邻的两个结点,返回交换之后的头结点。
例子:给定链表 1->2->3->4, 返回链表 2->1->4->3.
分析:关键在于分析循环的结束条件。以例子来说明:
设置三个指针pre,leftNode,secondNode。初始值如下,
pre = dummyNode;
leftNode= 节点1;
secondNode = 节点2;
循环条件为while(right.next != null && right.next.next != null),即判断节点3和节点4是否为空节点,如果有一个为空节点,那么节点1和节点2也不swap;如果节点3和节点4都不为空节点,那么节点1和节点2进行swap。然后将firstNode和secondNode后移到节点2和节点4。
在本例中,节点4的next为空,所以节点3和节点4不为空,所以在循环外做收尾处理,即将节点3和节点4进行swap。
那么,代码为:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode swapPairs(ListNode head) { if(head == null || head.next == null) return head; ListNode fakeHead = new ListNode(0); fakeHead.next = head; ListNode pre = fakeHead; ListNode left = head; ListNode right = head.next; while(right.next != null && right.next.next != null){ left.next = right.next; right.next = left; pre.next = right; left = left.next; right = right.next.next.next; pre = pre.next.next; } left.next = right.next; right.next = left; pre.next = right; return fakeHead.next; }}
阅读全文
0 0
- Leetcode题解 24. Swap Nodes in Pairs
- leetcode题解-24. Swap Nodes in Pairs
- Leetcode题解-24. Swap Nodes in Pairs
- leetcode题解-24. Swap Nodes in Pairs
- LeetCode题解:Swap Nodes in Pairs
- leetcode 题解 || Swap Nodes in Pairs 问题
- LeetCode 题解(178): Swap Nodes in Pairs
- LeetCode题解:Swap Nodes in Pairs
- [LeetCode]Swap Nodes in Pairs题解
- 24. Swap Nodes in Pairs 题解
- 24. Swap Nodes in Pairs题解
- [LeetCode]24.Swap Nodes in Pairs
- 24. Swap Nodes in Pairs Leetcode Python
- LeetCode --- 24. Swap Nodes in Pairs
- LeetCode 24.Swap Nodes in Pairs
- [Leetcode] 24. Swap Nodes in Pairs
- 【LeetCode】24.Swap Nodes in Pairs
- [leetcode] 24.Swap Nodes in Pairs
- 面向对象语言特性之继承
- 人脸识别深度验证文章迁移
- CTR预估的几种方式
- 一个真实案例看懂 P2P供应链金融的玩法
- JPA
- leetcode题解-24. Swap Nodes in Pairs
- matlab基础知识(1)
- 《看透springMVC源码》笔记之核心Servlet
- C语言实验——求一个3*3矩阵对角线元素之和
- 08、Android开发基础之QQ登陆界面的实现
- 51单片机 interrupt和 using使用详解
- 自定义toast
- Linux 特殊权限
- [点分树] Codechef December Challenge 2017. Chef, Leonardo And Queries