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 24. Swap Nodes in Pairs 解题报告

LeetCode 24. Swap Nodes in Pairs 解题报告题目描述Given a linked list, swap every two adjacent nodes and retu...

leetcode解题之24. Swap Nodes in Pairs java 版(成对翻转链表)

leetcode解题之24. Swap Nodes in Pairs java 版(成对翻转链表)

LeetCode 24 Swap Nodes in Pairs(交换序列中的结点)(Linked List)

翻译给定一个链表,调换每两个相邻节点,并返回其头部。例如, 给定 1->2->3->4, 你应该返回的链表是 2->1->4->3。你的算法必须使用唯一不变的空间。你也不能修改列表中的值,只有节点本身...
  • NoMasp
  • NoMasp
  • 2015-11-12 18:43
  • 3734

[C++]LeetCode: 109 Swap Nodes in Pairs (交换相邻节点位置)

题目: Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->...

LeetCode之24----Swap Nodes in Pairs

题目: Given a linked list, swap every two adjacent nodes and return its head. For example, Gi...

[leetcode: Python]24. Swap Nodes in Pairs

Given a linked list, swap every two adjacent nodes and return its head.For example, Given 1->2->3->...
  • NXHYD
  • NXHYD
  • 2017-05-19 15:37
  • 126

LeetCode 24. Swap Nodes in Pairs

题目Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2...

leetcode-24 Swap Nodes in Pairs

问题描述地址:https://leetcode.com/problems/swap-nodes-in-pairs/ 描述: Given a linked list, swap every two...

LeetCode OJ-24-Swap Nodes in Pairs

题目:Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2...

LeetCode24. Swap Nodes in Pairs

LeetCode24. Swap Nodes in Pairs
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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