LeetCode----- 24.Swap Nodes in Pairs
2017-10-17 20:03
441 查看
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.
给定一个链表,交换每两个相邻的节点并返回其头。例如,给定1-> 2-> 3-> 4,您应该将列表作为2-> 1-> 4-> 3返回。您的算法应该仅使用恒定空间。 您不能修改列表中的值,只能改变节点本身。
代码如下:
public class SwapNodesinPairs {
public static ListNode swapPairs(ListNode head) {
if(head == null || head.next == null) {
return head;
}
ListNode node = head;
ListNode temp = null;
int length = 0;
while(node != null) {
length++;
if(length%2 == 0) {
int flag = temp.val;
temp.val = node.val;
node.val = flag;
}else {
temp = node;
}
node = node.next;
}
return head;
}
public static void main(String[] args) {
ListNode l10 = new ListNode(1);
ListNode l11 = new ListNode(2);
ListNode l12 = new ListNode(3);
ListNode l13 = new ListNode(4);
ListNode l14 = new ListNode(5);
ListNode l15 = new ListNode(6);
l10.next = l11;
l11.next = l12;
l12.next = l13;
l13.next = l14;
l14.next = l15;
l15.next = null;
ListNode node =swapPairs(l10);
while(node != null) {
if(node.next == null) {
System.out.println(node.val);
}else{
System.out.print(node.val +"->");
}
node = node.next;
}
}
}
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
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.
给定一个链表,交换每两个相邻的节点并返回其头。例如,给定1-> 2-> 3-> 4,您应该将列表作为2-> 1-> 4-> 3返回。您的算法应该仅使用恒定空间。 您不能修改列表中的值,只能改变节点本身。
代码如下:
public class SwapNodesinPairs {
public static ListNode swapPairs(ListNode head) {
if(head == null || head.next == null) {
return head;
}
ListNode node = head;
ListNode temp = null;
int length = 0;
while(node != null) {
length++;
if(length%2 == 0) {
int flag = temp.val;
temp.val = node.val;
node.val = flag;
}else {
temp = node;
}
node = node.next;
}
return head;
}
public static void main(String[] args) {
ListNode l10 = new ListNode(1);
ListNode l11 = new ListNode(2);
ListNode l12 = new ListNode(3);
ListNode l13 = new ListNode(4);
ListNode l14 = new ListNode(5);
ListNode l15 = new ListNode(6);
l10.next = l11;
l11.next = l12;
l12.next = l13;
l13.next = l14;
l14.next = l15;
l15.next = null;
ListNode node =swapPairs(l10);
while(node != null) {
if(node.next == null) {
System.out.println(node.val);
}else{
System.out.print(node.val +"->");
}
node = node.next;
}
}
}
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
相关文章推荐
- 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
- Leetcode 24 Swap Nodes in Pairs
- LeetCode--24. Swap Nodes in Pairs
- 【LeetCode】24. Swap Nodes in Pairs
- Swap Nodes in Pairs - LeetCode 24
- [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-Java]24. Swap Nodes in Pairs
- [leetcode]24. Swap Nodes in Pairs
- LeetCode 24_Swap Nodes in Pairs
- LeetCode(24) Swap Nodes in Pairs
- 【LeetCode】C# 24、Swap Nodes in Pairs
- leetcode24~Swap Nodes in Pairs
- leetcode-24. Swap Nodes in Pairs