leetcode707. 设计链表

leetcode707. 设计链表

题目

思路

1.使用虚头节点,模拟class的初始化

2.class中添加一个链表长度的属性,便于后续操作

代码

python 复制代码
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next
        
class MyLinkedList:
    def __init__(self):
        self.dummy_head = ListNode()
        self.size = 0

    def get(self, index: int) -> int:
        if index < 0 or index >= self.size:
            return -1
        
        current = self.dummy_head.next
        for i in range(index):
            current = current.next
            
        return current.val

    def addAtHead(self, val: int) -> None:
        self.dummy_head.next = ListNode(val, self.dummy_head.next)
        self.size += 1

    def addAtTail(self, val: int) -> None:
        current = self.dummy_head
        while current.next:
            current = current.next
        current.next = ListNode(val)
        self.size += 1

    def addAtIndex(self, index: int, val: int) -> None:
        if index < 0 or index > self.size:
            return
        
        current = self.dummy_head
        for i in range(index):
            current = current.next
        current.next = ListNode(val, current.next)
        self.size += 1

    def deleteAtIndex(self, index: int) -> None:
        if index < 0 or index >= self.size:
            return
        
        current = self.dummy_head
        for i in range(index):
            current = current.next
        current.next = current.next.next
        self.size -= 1
相关推荐
@forever@3 小时前
【JAVA】LinkedList与链表
java·python·链表
程序员爱钓鱼3 小时前
Python编程实战:面向对象与进阶语法——类型注解与代码规范(PEP 8)
后端·python·ipython
程序员爱钓鱼3 小时前
Python实战:用高德地图API批量获取地址所属街道并写回Excel
后端·python·ipython
ᐇ9594 小时前
Java HashMap深度解析:数据结构、原理与实战指南
java·开发语言·数据结构
reasonsummer4 小时前
【教学类-97-06】20251105“葡萄”橡皮泥黏贴(小班主题《苹果与橘子》)
python
卖个几把萌5 小时前
【16】Selenium+Python 接管已打开谷歌浏览器
python·selenium·测试工具
像风一样的男人@5 小时前
python --两个文件夹文件名比对(yolo 图和label标注比对检查)
windows·python·yolo
lllsure5 小时前
【Python】Dict(字典)
开发语言·python
墨雪不会编程6 小时前
数据结构—排序算法篇二
数据结构·算法·排序算法
tianyuanwo6 小时前
Rust开发完全指南:从入门到与Python高效融合
开发语言·python·rust