小黑担任单位象棋比赛裁判,参加了好多会议,仰山10攀咬着大神跑刷新了自己的最好成绩,上了为期两天的初级党课培训班,嗓子始发烧去北京南站前往苏州的leetcode之旅:24. 两两交换链表中的节点

本文介绍了如何在单向链表中使用迭代和递归两种方法实现节点值的两两交换。首先展示了非递归的迭代解决方案,接着提供了递归版本的代码实现,对比两种方法在处理链表节点交换上的优劣。
摘要由CSDN通过智能技术生成

小黑代码

# 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 not head:
            return 
        # 增加头节点
        add_node = ListNode()
        add_node.next = head
        # 定义三个指针
        pre = add_node
        cur = head
        next_ = head.next
        # 开始进行三指针迭代
        while next_:
            pre.next = next_
            cur.next = next_.next
            next_.next = cur
            pre = cur
            cur = pre.next
            if not cur:
                break
            next_ = cur.next
        return add_node.next

在这里插入图片描述

递归法

# 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 not head or (not head.next):
            return head
        # 深度递归
        after = self.swapPairs(head.next.next)
        # 修改当前两个结点位置
        next_ = head.next
        next_.next = head
        head.next = after
        return next_

在这里插入图片描述

非递归法

# 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]:
        # 附加头结点
        add_node = ListNode()
        add_node.next = head
        # 初始化前置指针
        pre = add_node
        # 开始进行迭代,当后面不足两个结点时跳出
        while pre.next and pre.next.next:
            # 需要交换位置的两个结点
            start = pre.next
            end = pre.next.next
            # 后续结点的头指针
            after = end.next
            # 开始进行交换操作
            pre.next = end
            end.next = start
            start.next = after
            # 前置结点继续向前移动
            pre = start
        return add_node.next

在这里插入图片描述

小黑生活

麦当劳早餐

在这里插入图片描述

午餐干饭

在这里插入图片描述

晚餐跟家里涮一点儿羊肉

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

早餐烤冷面

在这里插入图片描述

来个肥宅水

在这里插入图片描述

午餐干饭

在这里插入图片描述
在这里插入图片描述

准备当单位象棋比赛裁判

在这里插入图片描述
在这里插入图片描述

晚餐干饭

在这里插入图片描述
在这里插入图片描述

仰山十攀越野跑,星历忘记更新了,手表gps失常了

在这里插入图片描述
在这里插入图片描述

麦当劳早餐

在这里插入图片描述

午餐干饭

在这里插入图片描述
在这里插入图片描述

下午学术沙龙

在这里插入图片描述

之后新入职人员廉政谈话

在这里插入图片描述

晚上继续涮羊肉

在这里插入图片描述
在这里插入图片描述

麦当劳早餐

在这里插入图片描述

午餐干饭

在这里插入图片描述
在这里插入图片描述

象棋比赛决赛裁判

在这里插入图片描述
在这里插入图片描述

下午支部活动

在这里插入图片描述

长安街的晚霞还是比较好看的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

晚餐干饭

在这里插入图片描述

简单理个发

在这里插入图片描述

早餐麦当劳

在这里插入图片描述

南二环当530配速员稳稳当当

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下午麦当劳来个香草麦旋风

在这里插入图片描述

周日晚上去大黑驴的出租屋里涮火锅喝酒

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

麦当劳早餐

在这里插入图片描述

午饭干饭

在这里插入图片描述
在这里插入图片描述

午后咖啡

在这里插入图片描述

麦当劳早餐

在这里插入图片描述

追动漫强风吹拂

在这里插入图片描述
在这里插入图片描述

报名重庆马拉松,进入抽签状态

在这里插入图片描述

午餐干饭

在这里插入图片描述
在这里插入图片描述

午后咖啡刷算法题

在这里插入图片描述

回家路上麻辣烫串串

在这里插入图片描述
在这里插入图片描述

健身房练背

在这里插入图片描述

早餐干饭

在这里插入图片描述
在这里插入图片描述

午餐干饭

在这里插入图片描述
在这里插入图片描述

午后咖啡

在这里插入图片描述

晚餐刀削面干饭

在这里插入图片描述
在这里插入图片描述

仰山十攀越野跑,跑出来最好成绩,想想就激情

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

麦当劳早餐

在这里插入图片描述

一天的初级党课

在这里插入图片描述

午餐干饭

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

午后咖啡

在这里插入图片描述

下午继续上党课

在这里插入图片描述

党课闭卷考点

在这里插入图片描述

回家路上麻辣烫

在这里插入图片描述
在这里插入图片描述

健身房练腿

在这里插入图片描述

跟舞花儿侠商量苏州半程马拉松特种兵计划

在这里插入图片描述

起床后嗓子疼低烧,跟阳了差不多,麦当劳早餐

在这里插入图片描述

参观党史展览馆

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

午餐干饭

在这里插入图片描述

午后咖啡

在这里插入图片描述

南京马拉松大众一级证书下来了

在这里插入图片描述

身体难受,但还是去了北京南站火车站,坐一等动卧前往苏州

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

火车上嗓子开始疼,低烧了,好难受啊,一直喝水压下去

在这里插入图片描述

看到了天津之眼

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下期更新小黑发低烧跑完了苏州环阳山半程马拉松,刷新自己最好半马成绩,但是身体却越来越难受了,以致于后续两个月感染了多种病毒,身体一直发虚没有跑步。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值