这里写目录标题
- 一、83. 删除排序链表中的重复元素
- 二、206. 反转链表
- 三、234. 回文链表
一、83. 删除排序链表中的重复元素
简单
1.1K
相关企业
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例 1:
输入:head = [1,1,2]
输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3]
输出:[1,2,3]
提示:
链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序 排列
def deleteDuplicates(head:ListNode):if head is None:return Nonecur=headwhile cur.next:if cur.next.val==cur.val:cur.next=cur.next.nextelse:cur=cur.nextreturn head
二、206. 反转链表
简单
3.4K
相关企业
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2]
输出:[2,1]
示例 3:
输入:head = []
输出:[]
class Solution:def reverseList(self,head:ListNode):cur=head #指向头节点pre=None #while cur:temp=cur.nextcur.next=prepre=curcur=tempreturn pre
三、234. 回文链表
简单
1.8K
相关企业
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
示例 1:
输入:head = [1,2,2,1]
输出:true
示例 2:
输入:head = [1,2]
输出:false
思路:推倒算法:当需要比较正向和反向的值的时候,栈可以轻松的做到,因为其先进后出的特性。我们先将原链表的值入栈,结束后依次出栈,和原序列的每个值相比较
class Solution:def func(self,head:ListNode):tmp=headhelper=[]while tmp:helper.append(tmp.val)tmp=tmp.nextwhile head:if head.val!=helper.pop():return Falsehead=head.nextreturn True