LeetCode Swap Nodes in Pairs
2015-08-29 21:51
489 查看
原题链接在这里:https://leetcode.com/problems/swap-nodes-in-pairs/
题目:
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
题解:
需要建一个dunmy,最后return dunmy.next. 如此可以避免边界问题的讨论,例如头两个点的转换。
Time Complexity: O(n), n是list的长度. Space: O(1).
AC Java:
题目:
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given
1->2->3->4, you should return the list as
2->1->4->3.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
题解:
需要建一个dunmy,最后return dunmy.next. 如此可以避免边界问题的讨论,例如头两个点的转换。
Time Complexity: O(n), n是list的长度. Space: O(1).
AC Java:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode swapPairs(ListNode head) { if(head == null || head.next == null){ return head; } ListNode dummy = new ListNode(0); dummy.next = head; ListNode mark = dummy; ListNode A; ListNode B; while(mark.next != null && mark.next.next != null){ A = mark.next; B = mark.next.next; A.next = B.next; B.next = A; mark.next = B; mark = mark.next.next; } return dummy.next; } }
相关文章推荐
- 2015-08-04个人定制(nodejs中的循环陷阱)
- HDFS架构——NameNode
- 25 Reverse Nodes in k-Group
- Leetcode 222: Count Complete Tree Nodes
- Delete Node in a Linked List 单链表删除节点
- NodeJS 读取XML文件
- LeetCode2.2.9(Reverse Nodes in k-Group)
- LeetCode2.2.8(Swap Nodes in Pairs)
- LeetCode2.2.7(Remove Nth Node From End of List)
- 在Ubuntu上安装Node.js的Upstream版本
- Delete Node in a Linked List
- LeetCode Remove Nth Node From End of List
- LeetCode Remove Nth Node From End of List
- windows下使用Nodejs开发Express4.x
- Remove Nth Node From End of List
- 解读Nodejs多核处理模块cluster
- LeetCode(237) Delete Node in a Linked List
- Node.js进程通信模块child_process
- nodepad++的emmet的使用问题
- NodeJs文件操作备注