19。删除链表倒数第N个节点
2024-10-09 18:31:42
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 这道题还是很简单的,我们只需要两遍的遍历,找到链表中倒数第n的前一个,
# 然后把n的前一个节点的next指向n的下一个节点,就可以了。
# 这里需要注意的是,如果链表的长度为1,我们好办了。
# 因此这里我们定义一个链表的节点,然后让他指向头结点。
# 这样我们就能实现删除第一个节点了。
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
# 判断链表是否为空。根据题意,这个判断可以不写,
# 因为题中说明了n是有效的数字
if not head :return None
# 定义一个节点,然后把它指向头结点。
node = ListNode(0)
node.next = head
length = 0
# 遍历出链表的长度。
while head:
length += 1
head = head.next
# 找到倒数第n各节点前边那个。
node1 = node
for i in range(length - n):
node1 = node1.next
# 然后把n删除。
node1.next = node1.next.next
return node.next
最新文章
- 第10章 Shell编程(2)_字符截取命令
- ubuntu14.04下搭建python+mysql环境
- Util应用程序框架公共操作类(九):Lambda表达式扩展
- 【原】浅谈KL散度(相对熵)在用户画像中的应用
- 2017 年值得一瞥的 JavaScript 相关技术趋势
- 删除(注意,删除后,后面顶上去,所以id会一直变,所以我们用class来定义,因为id是唯一的)
- Android源码编译
- intersection
- C# 添加.DLL 出错的解决方法
- 实验八--uart
- PHP: 深入pack/unpack 字节序
- apache基本配置
- 什么场景Hbase
- 基于springmvc的hessian调用原理浅析
- MQTT——控制报文格式
- 钉钉自定义机器人配合SVN钩子事件进行消息的推送实践
- [区块链\理解BTCD源码]GO语言实现一个区块链原型
- Sql server 的float和real类型会产生科学计数法,如何消除科学计数法
- Redis记录-JAVA连接Redis
- Notepad++如何关闭最近打开的文件的历史记录功能