[Leetcode] Swap Nodes in Pairs (Java)
2013-12-26 20:38
621 查看
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.
头脑发热,保存了好多的中间ListNode变量。。
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.
头脑发热,保存了好多的中间ListNode变量。。
public class SwapNodesinPairs { static class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } } public ListNode swapPairs(ListNode head) { if(head==null) return null; ListNode index = head; int k=0; while(index!=null){ k++; index=index.next; } index = head; ListNode res = new ListNode(-1); res.next = head; if(k%2==0){ ListNode pre = null; ListNode post = null; ListNode temp = res; while(index!=null){ pre = index; post = index.next; index = index.next.next; temp.next = post; post.next = pre; pre.next = index; temp = pre; } }else { ListNode pre = null; ListNode post = null; ListNode temp =res; while(index.next!=null){ pre = index; post = index.next; index = index.next.next; if(index!=null) { temp.next= post; post.next = pre; pre.next = index; temp = pre; } } } return res.next; } public static void main(String[] args) { ListNode head = new ListNode(1); ListNode l2 = new ListNode(2); head.next = l2; head = new SwapNodesinPairs().swapPairs(head); System.out.print(head.val); head=head.next; while(head!=null) { System.out.print("->"+head.val); head=head.next; } } }
相关文章推荐
- LeetCode 24 Swap Nodes in Pairs (C,C++,Java,Python)
- Swap Nodes in Pairs leetcode java
- Java for LeetCode 024 Swap Nodes in Pairs
- Swap Nodes in Pairs leetcode java
- leetcode Swap Nodes in Pairs(Java)
- [leetcode]24. Swap Nodes in Pairs(java)
- LeetCode : Swap Nodes in Pairs [java]
- [LeetCode-Java]24. Swap Nodes in Pairs
- [LeetCode][Java] Swap Nodes in Pairs
- Java [leetcode 24]Swap Nodes in Pairs
- 【LeetCode-面试算法经典-Java实现】【024-Swap Nodes in Pairs(成对交换单链表的结点)】
- (Java)LeetCode-24. Swap Nodes in Pairs
- (Java) LeetCode 24. Swap Nodes in Pairs —— 两两交换链表中的节点
- LeetCode24之SwapNodesInPairs的Java 题解
- leetcode 24. Swap Nodes in Pairs ---java
- leetcode-24. Swap Nodes in Pairs
- LeetCode-Swap Nodes in Pairs
- LeetCode-Swap Nodes in Pairs
- 算法分析与设计——LeetCode:24. Swap Nodes in Pairs
- leetcode 题解 || Swap Nodes in Pairs 问题