当前位置: 首页 > news >正文

【leetcode 07】707.设计链表

要点⭐
链表的常见操作
获取第n个节点的值
头部插入节点
尾部插入节点
第n个节点前插入(先立新,在破旧)
删除第n个节点

class ListNode{int val;ListNode next;ListNode(){};ListNode(int val){this.val=val;}
}
class MyLinkedList {//链表大小int size;//虚拟头节点ListNode head;//初始化链表public MyLinkedList(){size=0;head=new ListNode(0);}public int get(int index) {if(index<0||index>=size){return -1;}ListNode currentNode=head;//包含一个虚拟头节点,所以查找第index+1个节点for(int i=0;i<=index;i++){currentNode=currentNode.next;}return currentNode.val;}public void addAtHead(int val) {ListNode newNode=new ListNode(val);newNode.next=head.next;head.next=newNode;size++;}public void addAtTail(int val) {ListNode newNode=new ListNode(val);ListNode currentNode=head;while(currentNode.next!=null){currentNode=currentNode.next;}currentNode.next=newNode;size++;}public void addAtIndex(int index, int val) {if(index>size){return;}if(index<0){index=0;}size++;ListNode pred=head;for(int i=0;i<index;i++){pred=pred.next;}ListNode toAdd=new ListNode(val);toAdd.next=pred.next;pred.next=toAdd;}public void deleteAtIndex(int index) {if(index<0||index>=size){return;}size--;ListNode pred=head;for(int i=0;i<index;i++){pred=pred.next;}pred.next=pred.next.next;}
}/*** Your MyLinkedList object will be instantiated and called as such:* MyLinkedList obj = new MyLinkedList();* int param_1 = obj.get(index);* obj.addAtHead(val);* obj.addAtTail(val);* obj.addAtIndex(index,val);* obj.deleteAtIndex(index);*/
http://www.lryc.cn/news/511966.html

相关文章:

  • 【Spring】详解(上)
  • 短视频矩阵系统后端源码搭建实战与技术详解,支持OEM
  • 力扣每日刷题
  • QT的信号和槽页面的应用
  • 【Java】线程相关面试题 (基础)
  • 【数字化】华为一体四面细化架构蓝图
  • frameworks 之 WMS添加窗口流程
  • 搜索方法归类全解析
  • 第1关:简易考试系统之用户注册
  • VMware的三种网络模式——在NAT模式下开放接口为局域网内其他主机提供服务
  • 智慧地下采矿:可视化引领未来矿业管理
  • 流量主微信小程序工具类去水印
  • 代码随想录算法【Day5】
  • Leetcode 3403. Find the Lexicographically Largest String From the Box I
  • 【游戏设计原理】36 - 环境叙事
  • Python 中的 lambda 函数和嵌套函数
  • 语言模型评价指标
  • 工程师 - MSYS2介绍
  • 算法基础三:插入排序
  • 小米汽车加速出海,官网建设引领海外市场布局!
  • Python Polars快速入门指南:LazyFrames
  • 什么是网络安全(Cybersecurity)?
  • VBA批量插入图片到PPT,一页一图
  • Pandas-DataFrame入门
  • 爬虫 - 爬取王者荣耀所有皮肤图片
  • 【畅购商城】购物车模块之查看购物车
  • Spring Boot 学习笔记
  • 快速打造智能应用:从设计到上线的全流程指南
  • Java-将一个大列表均分成多个小列表,每个小列表包含10个元素
  • tcp_rcv_synsent_state_process函数