zoukankan      html  css  js  c++  java
  • 24. 两两交换链表中的节点

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

    你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

    示例 1:


    输入:head = [1,2,3,4]
    输出:[2,1,4,3]
    示例 2:

    输入:head = []
    输出:[]
    示例 3:

    输入:head = [1]
    输出:[1]
     

    提示:

    链表中节点的数目在范围 [0, 100] 内
    0 <= Node.val <= 100
     

    进阶:你能在不修改链表节点值的情况下解决这个问题吗?(也就是说,仅修改节点本身。)

    # Definition for singly-linked list.
    # class ListNode:
    #     def __init__(self, val=0, next=None):
    #         self.val = val
    #         self.next = next
    class Solution:
        def swapPairs(self, head: ListNode) -> ListNode:
            # 生成一个列表
            l = []
            while head:
                l.append(head.val)
                head = head.next
            
            length = len(l) 
            dummy = ListNode(0, head)
            cur = dummy
            for i in range(0, length, 2):
                if (i + 1 == length):
                    cur.next = ListNode(l[i])
                else:
                    cur.next = ListNode(l[i + 1])
                    cur = cur.next
                    cur.next = ListNode(l[i])
                cur = cur.next
            return dummy.next
  • 相关阅读:
    今年暑假不AC
    Java类的生命周期
    Java反射机制
    Java环境变量的配置及使用
    javaIO流(一)
    ftp服务器测试
    linux下svn使用及查看杀掉进程
    网络配置学习
    网络配置指令
    dos攻击与防御
  • 原文地址:https://www.cnblogs.com/yunxintryyoubest/p/15501451.html
Copyright © 2011-2022 走看看