LeetCode Swap Nodes in Pairs
来源:互联网 发布:mac键盘方向键跳动 编辑:程序博客网 时间:2024/06/05 07:10
LeetCode解题之Swap Nodes in Pairs
原题
将链表中相邻的两个节点交换位置,注意第一个节点与第二个节点要交换位置,而第二个节点不用与第三个节点交换位置。
注意点:
- 不允许修改节点的值
- 只能用常量的额外空间
例子:
输入: head = 1->2->3->4
输出: 2->1->4->3
解题思路
比较常见的链表操作。下面看一下典型情况,如要交换链表中A->B->C->D中的B和C需要做如下操作:
- 将A指向C
- 将B指向D
- 将C指向B
在头节点之前加一个假节点就可以使所有的交换都符合上面的情况。
AC源码
# Definition for singly-linked list.class ListNode(object): def __init__(self, x): self.val = x self.next = Noneclass Solution(object): def swapPairs(self, head): """ :type head: ListNode :rtype: ListNode """ prev = ListNode(-1) prev.next = head temp = prev while temp.next and temp.next.next: node1 = temp.next node2 = temp.next.next temp.next = node2 node1.next = node2.next node2.next = node1 temp = temp.next.next return prev.next
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
0 0
- LeetCode:Swap Nodes in Pairs
- LeetCode: Swap Nodes in Pairs
- [Leetcode] Swap Nodes in Pairs
- LeetCode : Swap Nodes in Pairs
- [LeetCode] Swap Nodes in Pairs
- Leetcode: Swap nodes in pairs
- [LeetCode]Swap Nodes in Pairs
- [LeetCode]Swap Nodes in Pairs
- LeetCode-Swap Nodes in Pairs
- LeetCode - Swap Nodes in Pairs
- LeetCode | Swap Nodes in Pairs
- 【leetcode】Swap Nodes in Pairs
- Leetcode: Swap Nodes in Pairs
- LeetCode - Swap Nodes in Pairs
- 【LeetCode】Swap Nodes in Pairs
- Leetcode: Swap Nodes in Pairs
- Leetcode Swap Nodes in Pairs
- LeetCode Swap Nodes in Pairs
- 响应式Web设计总结
- Oracle SQLチューニング講座
- LeetCode Merge k Sorted Lists
- 生产实习(Android)六
- linux获取进程执行时间方法
- LeetCode Swap Nodes in Pairs
- LeetCode 228:Summary Ranges
- 重写和重载的区别小结
- -[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object' 解决方法:
- 查找Linux系统中的占用磁盘空间最大的前10个文件或文件夹
- 基于NSUserDefaults的数据存储
- 406 Not Acceptable
- php webservice应用
- 判断两线段是否相交