算法学习打卡计划

leetcode第二十四题 ——交换链表元素顺序

2019-11-30  本文已影响0人  不分享的知识毫无意义

1.题目

原题:

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

例子:

给定 1->2->3->4, 你应该返回 2->1->4->3

2.解析

这道题刚开始是没读懂题意,还以为是给定两个位置让我交换链表元素,后来仔细看了一下是两两交换,从头开始的,这个题其实考的是链表的操作,这属于链表一系列题,我们先来看一下链表的知识点。

3.python代码

class Solution:
    def swapPairs(self, head: ListNode) -> ListNode:
        if not head:
            return head
        cur = ListNode(0)
        cur.next = head
        first = cur
        while cur.next and cur.next.next:
            n1 = cur.next
            n2 = n1.next
            nxt = n2.next
            n1.next = nxt
            n2.next = n1
            cur.next = n2
            cur = n1
        return first.next
上一篇 下一篇

猜你喜欢

热点阅读