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

凡科建站下载网络推广软文范文

凡科建站下载,网络推广软文范文,广东深圳网站建设方便,公司网站页面设计图片题目:leetcode707. 设计链表 描述: 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链…

题目:leetcode707. 设计链表

描述:
你可以选择使用单链表或者双链表,设计并实现自己的链表。

单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。

如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。

实现 MyLinkedList 类:

MyLinkedList() 初始化 MyLinkedList 对象。
int get(int index) 获取链表中下标为 index 的节点的值。如果下标无效,则返回 -1 。
void addAtHead(int val) 将一个值为 val 的节点插入到链表中第一个元素之前。在插入完成后,新节点会成为链表的第一个节点。
void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。
void addAtIndex(int index, int val) 将一个值为 val 的节点插入到链表中下标为 index 的节点之前。如果 index 等于链表的长度,那么该节点会被追加到链表的末尾。如果 index 比长度更大,该节点将 不会插入 到链表中。
void deleteAtIndex(int index) 如果下标有效,则删除链表中下标为 index 的节点。

示例:

输入
[“MyLinkedList”, “addAtHead”, “addAtTail”, “addAtIndex”, “get”, “deleteAtIndex”, “get”]
[[], [1], [3], [1, 2], [1], [1], [1]]
输出
[null, null, null, null, 2, null, 3]

解释
MyLinkedList myLinkedList = new MyLinkedList();
myLinkedList.addAtHead(1);
myLinkedList.addAtTail(3);
myLinkedList.addAtIndex(1, 2); // 链表变为 1->2->3
myLinkedList.get(1); // 返回 2
myLinkedList.deleteAtIndex(1); // 现在,链表变为 1->3
myLinkedList.get(1); // 返回 3

思路:使用单链表+虚拟指针完成

public class ListNode {public int val;public ListNode next;public ListNode(){};public ListNode(int val){ this.val=val;}public ListNode(int val, ListNode next) {this.val = val;this.next = next;}
}public class MyLinkedList {int size; //除去虚拟头结点之后的长度ListNode head;//虚拟头结点public MyLinkedList() {size=0; //初始化链表长度,但是设置虚拟头结点的时候size不会加一head=new ListNode(-1,null); //设置的虚拟头节点}public int get(int index) {//index从0开始,下面的情况非法if(index<0||index>=size)return -1;ListNode cur=head.next;for (int i = 0; i < index; i++) {cur=cur.next;}return cur.val;}public void addAtHead(int val) {addAtIndex(0,val);}public void addAtTail(int val) {addAtIndex(size,val);}public void addAtIndex(int index, int val) {//如果index<0,说明是插在头结点之前,令index=0//如果inde=size,说明要插在末尾//如果index>size,非法返回空if(index>size)return;if(index<0)index=0;//找到要插入的地方的前驱,方便操作(因为是虚拟指针,如果要找到index位置的元素,则使用i<index-1,// 现在是找到这个元素的前驱,则i<index)ListNode pre=head;for (int i = 0; i < index; i++) {pre=pre.next;}ListNode newNode=new ListNode(val);newNode.next=pre.next;pre.next=newNode;size++;}public void deleteAtIndex(int index) {if(index<0||index>size-1)return;//使用双指针进行删除操作ListNode pre=head;ListNode cur=head.next;for(int i=0;i<index;i++){cur=cur.next;pre=pre.next;}pre.next=cur.next;size--;}
}
http://www.yayakq.cn/news/667007/

相关文章:

  • 免费ps软件网站查网站的建站系统
  • app网站建站系统南海桂城城乡建设局官方网站
  • 网站运营经理岗位要求移植wordpress数据库
  • wordpress 文档导入数据库南京做网站优化多少钱
  • 网站建设找实体还是淘宝51网站怎么打不开了
  • 个人网站建设规划书网站设计创新点怎么写
  • 网站赚钱的方式如何判断网站seo做的好坏
  • 南昌网站定制开发公司wordpress主题 mnews
  • 工作室装修网站源码软装设计图 效果图
  • wordpress 添加幻灯片天津百度优化公司
  • 公司网站建设找哪家北京互联网营销
  • dedecms 子网站大庆公司做网站
  • 网站建设搭建微商导航网站学网站建设好吗
  • 网上自己建网站手机wordpress清除缓存
  • 红岗网站建设seo兼职网
  • 网站设计趋势无线昆明官方网站
  • 电商网站建设方案PPT上海网页制作步骤
  • 泉州哪家网站建设公司好网络营销最成功的企业
  • 首页标题在哪里打开无锡优化网站公司
  • 企业网站维护报价企业网站开发文档
  • logo免费设计网站有哪些苏州网站设计制作
  • 用阿里云服务器做盗版小说网站吗房地产开发公司网站建设方案
  • 公司个人怎么制作网站有项目没有钱怎么找投资人
  • 博客网站注册阿里云 上传wordpress
  • 可以做护考题目的网站网站开发侵权
  • 网站每天一条推送怎么做的电子商务和网络营销的区别
  • 一般网站的服务器外贸出口网
  • 免费网站源码建站系统海口网站制作公司
  • 洛阳制作网站的公司优惠活动制作网站
  • 专业网站设计第三方服务小程序退款商家不给退咋办