当前位置:网站首页>LeetCode50天刷题计划(Day 16—— 两两交换链表中的节点(9.10-10.30)
LeetCode50天刷题计划(Day 16—— 两两交换链表中的节点(9.10-10.30)
2022-08-10 11:01:00 【国际知名观众】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
简单的链表题,但是不能小看,要细心的,不然就是无穷的debugQAQ
最近感觉题目越来越简单了,正在考虑要不要一天刷两道题捏~
一、题目
两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。
示例
示例 1:
输入:head = [1,2,3,4]
输出:[2,1,4,3]
示例 2:
输入:head = []
输出:[]
示例 3:
输入:head = [1]
输出:[1]
提示
链表中节点的数目在范围 [0, 100] 内
0 <= Node.val <= 100
二、思路
给链表加工头结,点然后画个草图自己转一下就行,没啥技术含量
过程中碰到的问题是
`Python3:AttributeError: ‘NoneType‘ object has no attribute ‘next‘`
报错的语句是
while(q.next):
因为填入测试的样例中p首次进入循环并不是为空的,所以就没有注意,但是好像还是应该判断一下p是否为None才能过,不然一直报错
改为如下就可以了:
while(q and q.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]:
#先造个头结点
head1=ListNode(val=0,next=head)
#双指针pq循环
p=head1 #指向头结点
q=head #指向首节点
while(q and q.next):
p.next=q.next #q的前一个元素指向q的后一个元素
temp=q.next.next #保存q的后一个元素的后一个元素
q.next.next=q #q的后一个元素指向q
q.next=temp #q指向后一个元素的后一个元素(交换前序列中)
p=p.next.next #移动指针
q=q.next
#返回
return head1.next
附:
https://leetcode.cn/problems/divide-two-integers/solution/wei-yun-suan-shi-chu-by-fyzj-rntc/
29. 两数相除
边栏推荐
猜你喜欢
gpu-admission 源码分析
Memory problems difficult to locate, it is because you do not use ASAN
CPU多级缓存与缓存一致性
[Brave food, not afraid of the linked list of brushing questions] Merging of ordered linked lists
3款不同类型的自媒体免费工具,有效提高创作、运营效率
mysql出现:ERROR 1524 (HY000): Plugin ‘123‘ is not loaded
2022年裁员潮,失业程序员何去何从?
In August the DB list latest scores - database Engines
学长告诉我,大厂MySQL都是通过SSH连接的
A little self-deprecating deconstruction about farmers "code"
随机推荐
【勇敢饭饭,不怕刷题之链表】有序链表的合并
什么是幂等性?四种接口幂等性方案详解!
软件架构简介
mysql出现:ERROR 1524 (HY000): Plugin ‘123‘ is not loaded
Nocalhost - Making development more efficient in the cloud-native era
负载均衡原理分析与源码解读
阻塞 非阻塞 poll机制 异步
VSCode remote connection server error: Could not establish connection to "xxxxxx" possible error reasons and solutions
力扣练习——61 根据字符出现频率排序
2022年裁员潮,失业程序员何去何从?
[E-commerce operation] Do you really understand social media marketing (SMM)?
面试官:项目中 Dao、Service、Controller、Util、Model 怎么划分的?
为什么Redis很快
从脚本到剪辑,影像大师亲授的后期制作秘籍
POJ 3101 Astronomy (数学)
POJ 1026 Cipher (Permutation Groups)
LeetCode_152_乘积最大子数组
【电商运营】你真的了解社交媒体营销(SMM)吗?
Stroke Practice - 62 Valid Sudokus
石墨文档打开文档时快速定位到上次写的位置