首页 > 其他分享 >24. 两两交换链表中的节点 【递归】

24. 两两交换链表中的节点 【递归】

时间:2023-08-06 17:55:59浏览次数:36  
标签:24 __ head ListNode 递归 next 链表 lst

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

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

 

思路:递归

from typing import Optional
# 创建链表
def create_linked_list(lst):
    if not lst:
        return None

    head = ListNode(lst[0])
    current = head

    for val in lst[1:]:
        current.next = ListNode(val)
        current = current.next

    return head

# 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: Optional[ListNode]) -> Optional[ListNode]:
        if head is None or head.next is None:
            return head
        t = self.swapPairs(head.next.next)
        p = head.next
        p.next = head
        head.next = t
        return p

if __name__ == '__main__':
    s = Solution()
    lst = [1, 2, 3, 4]
    head = create_linked_list(lst)
    res = s.swapPairs(head)
    print(res)

  

标签:24,__,head,ListNode,递归,next,链表,lst
From: https://www.cnblogs.com/wangpengcufe/p/17609670.html

相关文章

  • 数据结构与算法(四):双向链表
    基本概念双向链表概念和单向链表是一致的,区别在于双向链表在单向链表的基础上,指针区域多了一个指向上一个节点的指针。单向链表内容可以参考我的上一篇文章:http://t.csdn.cn/Iu56H。基本的数据结构如图所示:链表结构双向链表结构包含了节点的数据内容和两个指针:指向前一个节点......
  • SQLServer 2000 服务不能启动的多种解决办法43.240.156.X
    一、在服务器上以管理员帐户登录操作系统。43.240.156.2二、尝试通过操作系统中的服务来启动SQLServer服务:43.240.156.3  1、在“我的电脑”上点击右键,选择“管理”菜单。43.240.156.4  2、在“计算机管理”程序中,依次展开服务和应用程序->服务。43.240.156.5  3、......
  • 力扣-24. 两两交换链表中的节点
     题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 =publicstaticListNodeswapPairs(ListNodehead){if(head==null||head.next==null)returnhead;......
  • 【ACM专项练习#03】打印图形、栈的合法性、链表操作、dp实例
    运营商活动题目描述小明每天的话费是1元,运营商做活动,手机每充值K元就可以获赠1元,一开始小明充值M元,问最多可以用多少天?注意赠送的话费也可以参与到奖励规则中输入输入包括多个测试实例。每个测试实例包括2个整数M,K(2<=k<=M<=1000)。M=0,K=0代表输入结束。输出对于每个测试实......
  • day24
    一.miscmisc1.得到一张png,扔进kali中,foremost得到两个zip,打开其中一个,发现一张jpg和一个加密的zip,在jpg中分离出一个zip2.爆破得到密码z$^58a4w3.txt没有用,打开压缩包4.得到三个文件,whoami需要密码,看word文档,查看隐藏字符,看到几行字符串5.再zsteg一下得到的png,发现一个p......
  • 王道408用数组,链表以及双向链表实现栈、队列
    我在电脑上敲了一遍,又在纸上模拟了一遍下面记录在电脑上敲的:一、用数组实现栈#include<stdio.h>#include<string.h>#defineMaxSize50typedefstruct{intdata[MaxSize];inttop;}stack;voidInitStack(stack&S){S.top=-1;S.data[0]=5;......
  • LeetCode 206 反转链表,LeetCode 92反转链表Ⅱ
    反转链表给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]提示:链表中节点的数目范围是[0,5000]-5000<=Node.val<=5000写法一:不使用头节点,......
  • AP2400 LED照明电源驱动 DC-DC降压恒流IC 过EMC线路图 PCB线路图 车灯摩灯
    产品特点宽输入电压范围:5V~100V可设定电流范围:10mA~6000mA固定工作频率:150KHZ内置抖频电路,降低对其他设备的EMI干扰平均电流模式采样,恒流精度更高0-100%占空比控制,无电流节点跳变输出短路保护过温保护三功能模式:全亮/半亮/爆闪/三功能循环SOP8封装产品描述AP2400是一款PWM工作模......
  • msm8909_wk2124_SPI转串口485
    项目使用的是高通的msm8909平台,采用广和通SC806开发板,开发环境采用Ubuntu18.04。SC806默认有两路串口,对项目来说不够使用,需要进行转接,所以采用了wk2124将一路SPI转换为4路串口,然后再加485芯片,转换为4路485接口。接下来详细看看整个配置过程。概述说明:本文档会将为开提供的官方文......
  • 算法:深挖合并 K 个有序链表
    本人刷题时思考的几个解法,欢迎交流力扣链接:合并2个有序链表力扣链接:合并K个有序链表目录合并2个有序链表合并k个有序链表K个中minNode排序队列取minNode队头手动实现的排序队列优先级队列分治合并2个有序链表合并2个有序链表操作模型:for->cur=min(list1......