您的位置:首页 > Web前端 > Node.js

Leetcode-24. Swap Nodes in Pairs

2016-10-02 12:19 357 查看
前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。

博客链接:mcf171的博客

——————————————————————————————
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.
这个题目挺简单的,也没什么好说的。Your runtime beats 14.77% of java submissions.

/**
* 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) return head;
if(head.next == null) return head;

ListNode firstNode = head;
ListNode secondNode = head.next;
firstNode.next = secondNode.next;
secondNode.next = firstNode;
head = secondNode;
ListNode searchNode = firstNode.next;
ListNode parentNode = firstNode;
while(searchNode != null && searchNode.next !=null){
firstNode = searchNode;
secondNode = searchNode.next;
firstNode.next = secondNode.next;
secondNode.next = firstNode;
parentNode.next = secondNode;
searchNode = firstNode.next;
parentNode = firstNode;
}
return head;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法 leetcode