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

(LeetCode)Swap Nodes in Pairs --- 交换两个相邻的结点

2016-09-06 22:42 483 查看
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.

Subscribe to see which companies asked this question

解题分析:
对于此题目,分析题目,我们可以加一个索引,在第一个结点,然后可以保证第一个结点不丢失, 然后依次交换每个结点。
# -*- coding:utf-8 -*-
__author__ = 'jiuzhang'
class ListNode(object):
def __init__(self, x):
self.val = x
self.next = None

class Solution(object):
def swapPairs(self, head):
dummy = ListNode(0)
dummy.next = head
pre, cur = dummy, head
while cur and cur.next:
pre.next = cur.next
cur.next = pre.next.next
pre.next.next = cur
pre, cur = cur, cur.next
return dummy.next

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: