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

【LeetCode with Python】 Swap Nodes in Pairs

2008-12-07 12:57 701 查看
博客域名:http://www.xnerv.wang

原题页面:https://oj.leetcode.com/problems/swap-nodes-in-pairs/

题目类型:链表

难度评价:★

本文地址:/article/1377557.html

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.

交换单链表中每一对相邻的奇偶数下标的元素,注意防止链表长度可能是奇数,即不要忘记检查second_node是否为None。

class Solution:
    # @param a ListNode
    # @return a ListNode
    def swapPairs(self, head):
        if None == head:
            return head
        new_head = ListNode(0)
        new_head.next = head
        last_node = new_head
        while True:
            first_node = last_node.next
            if None == first_node:
                break
            second_node = first_node.next
            if None == second_node:
                break
            last_node.next = second_node
            first_node.next = second_node.next
            second_node.next = first_node
            last_node = first_node
        return new_head.next
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: