leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法

原创 2015年07月07日 13:09:35
Swap Nodes in Pairs 

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.


思路:题目比较简单,会链表反转的都可以做,思路也差不多,不多说,上代码。

/**
 * 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) {
	        
	        ListNode firstHead = new ListNode(0);
	        firstHead.next = head;
	        ListNode pre = firstHead;//定义一个头结点,这样所有的操作都相同
	        ListNode next = null;
	        while(head != null && head.next != null){
	        	//A-B-C-D交换BC,pre=A;B=head;C=next
	            next = head.next;//保存交换的变量C
	            
	            head.next = next.next;//将B指向B的指针指向D
	            pre.next = next;//将A指向B的指针指向C
	            next.next = head;//将C指向D的指针指向B,完成交换,顺序变为A-C-B-D
	            
	            //为下一循环准备变量
	            pre = head;//将pre变为B
	            head = head.next;//将head指向D
	            
	        }
	        return firstHead.next;
	    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Leetcode解题思路总结(Easy)

近来走上了Leetcode刷题之路,不过刷题背后更重要的是思路,掌握了方法,举一反三融会贯通。故在此我总结每道题的解题思路,按照题目从简单到难的顺序来列举。 292 Nim Game,传说中的一行...
  • luoshengkim
  • luoshengkim
  • 2015年12月17日 17:12
  • 2944

leetcode解题思路

转载地址:http://blog.csdn.net/liuxialong/article/details/41941407 收录https://oj.leetcode.com/problem...
  • zr459927180
  • zr459927180
  • 2016年07月26日 09:37
  • 565

LeetCode | Swap Nodes in Pairs(将链表中的元素两两交换)

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-...
  • a45872055555
  • a45872055555
  • 2014年07月08日 21:45
  • 538

leetcode解题总结(持续更新)

树型:DFS或BFS(不够+状态存储,缩短时间)(如数位DP,就是DFS+状态存储) 链表:多用two pointer 无序数组:hash映射(O(1),map,set等),并查集,字典树tire 有...
  • ChinaJane163
  • ChinaJane163
  • 2016年09月21日 20:53
  • 613

Decode Ways 把字符串解码成数字组合@LeetCode

做这道题还是有很多收获的: 1.为了避免麻烦,开数组时可以开大一些,如int[] ways = new int[len+10]; 2. 这道题实际上是和计算要几步走完台阶的那道题本质是一样的。同样要用...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月24日 05:05
  • 2743

Java值传递之swap()方法不能交换

自己写了一个Swap测试类,代码如下:public class Swap { public static void main(String[] args) { int ...
  • qbg291932598
  • qbg291932598
  • 2017年04月04日 10:50
  • 265

swap(a,b)值交换的4种方法

这篇文章所要表述的内容的确很简单,写之前,我纠结了很久:写与不写。平常swap(a,b)值交换,我们基本都是使用第一种方法,对于数学较好的人,可能会想到第二种方法,想到时,一定感觉很好,。对于汇编或对...
  • huangminqiang201209
  • huangminqiang201209
  • 2013年02月25日 10:04
  • 4341

每日算法之二十二:Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->...
  • yapian8
  • yapian8
  • 2014年05月30日 20:11
  • 778

LeetCode 重构二叉搜索数,即找出两个被交换的节点

原题:Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without ch...
  • u013276277
  • u013276277
  • 2017年05月17日 15:43
  • 495

Linux Swap交换分区介绍总结

Linux Swap交换分区介绍总结
  • x_r_su
  • x_r_su
  • 2016年10月28日 16:36
  • 604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetCode 24. Swap Nodes in Pairs (双数交换节点) 解题思路和方法
举报原因:
原因补充:

(最多只允许输入30个字)