Swap Nodes in Pairs
来源:互联网 发布:在淘宝免费买东西app 编辑:程序博客网 时间:2024/06/05 11:47
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.
Really a hard one for me, because I am not sure the pointers direction...
1. new ListNode p, p.next = head;
2. two pointers, curr= head; prev = p;
3. when loop begin, two pointers to track pair: first and second.
Failed with recursion way...
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution {/* public ListNode swapPairs(ListNode head) { ListNode p = new ListNode(0); p.next = head; swapParis(p); return p.next; } public ListNode swapParis(ListNode n){ if(n == null || n.next == null || n.next.next==null){ return n; } ListNode tmp = n.next.next; ListNode ptmp = n.next; n.next.next = n; n.next = swapPairs(tmp); return ptmp; }*/public ListNode swapPairs(ListNode head){ ListNode p = new ListNode(0); p.next = head; ListNode prev = p; ListNode curr = head; if(head==null || head.next == null){ return p.next; } while(curr!=null && curr.next!=null){ ListNode first = curr; ListNode second = curr.next; curr = curr.next.next; prev.next = second; second.next = first; first.next = curr; prev = first; } return p.next;}}
0 0
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes In Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Climbing stairs
- java运行Windows命令
- Set Matrix Zeroes
- coding style
- Merge Sorted Array
- Swap Nodes in Pairs
- Remove Element
- Valid Binary Search Tree
- Valid Palindrome
- Word Ladder
- 写在2/11
- iOS7 兼容适配
- 机器学习的最佳入门学习资源
- 《Win32多线程程序设计》(6)---事件(Event Objects)