LEETCODE 707. 设计链表

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

class MyLinkedList:

    def __init__(self):
        self.head=None
        self.size=0

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

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

    def addAtTail(self, val: int) -> None:
        if not self.head:
            self.addAtHead(val)
            return
        current_node=self.head
        while current_node.next:
            current_node=current_node.next
        current_node.next=ListNode(val)
        self.size+=1

    def addAtIndex(self, index: int, val: int) -> None:
        if index>self.size:
            return 
        if index<=0:
            self.addAtHead(val)
            return
        current_node=self.head
        for _ in range(index-1):
            current_node=current_node.next
        current_node.next=ListNode(val, current_node.next)
        self.size+=1
    def deleteAtIndex(self, index: int) -> None:
        if index<0 or index>=self.size:
            return
        self.size-=1
        
        if index==0:
            self.head=self.head.next
        else:
            current_node=self.head
            for _ in range(index-1):
                current_node=current_node.next
             
            current_node.next=current_node.next.next

# Your MyLinkedList object will be instantiated and called as such:
# obj = MyLinkedList()
# param_1 = obj.get(index)
# obj.addAtHead(val)
# obj.addAtTail(val)
# obj.addAtIndex(index,val)
# obj.deleteAtIndex(index)
相关推荐
mit6.82431 分钟前
[Agent开发平台] 后端的后端 | MySQL | Redis | RQ | idgen | ObjectStorage
人工智能·python
学编程的小虎38 分钟前
用 Python + Vue3 打造超炫酷音乐播放器:网易云歌单爬取 + Three.js 波形可视化
开发语言·javascript·python
yunson_Liu1 小时前
编写Python脚本在域名过期10天内将域名信息发送到钉钉
开发语言·python·钉钉
布林模型2 小时前
缠论工具czsc快速使用入门(二)
python·缠论·快速入门·czsc
邂逅you2 小时前
用python操作mysql之pymysql库基本操作
数据库·python·mysql
啊森要自信2 小时前
【GUI自动化测试】YAML 配置文件应用:从语法解析到 Python 读写
android·python·缓存·pytest·pip·dash
合作小小程序员小小店2 小时前
web开发,学院培养计划系统,基于Python,FlaskWeb,Mysql数据库
后端·python·mysql·django·web app
渣渣盟2 小时前
解密NLP:从入门到精通
人工智能·python·nlp
老程序员刘飞2 小时前
注册 区块链节点
python
KAIWEILIUCC2 小时前
Python抽象基类(abc.ABC)介绍
python