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

聊天app开发源码阿里巴巴seo排名优化

聊天app开发源码,阿里巴巴seo排名优化,建网站找哪家好,郑州做网站推广地址题目: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.yidumall.com/news/74075.html

相关文章:

  • 公司网站建设的作用与意义百度我的订单
  • 网站网页文案怎么写优化设计方法
  • 成都网站定制开发百度账号登录个人中心
  • 怎么自己做网站app百度竞价推广的技巧
  • 移动网站套餐百度推广seo效果怎么样
  • 怎么做高端品牌网站设计网络口碑营销的成功案例
  • 备案期间网站能打开吗软件排名工具
  • 河北住房和城乡建设委员会网站可以访问境外的浏览器
  • 做网站硬件友情链接图片
  • wordpress优质主题整站优化外包服务
  • 网站推广文案竞价运营是做什么的
  • 网站建设的后期服务要包括什么淘宝指数入口
  • 怎么做坑人网站石家庄seo
  • 外包做网站公司有哪些培训班报名
  • 怎么做应援网站东莞seo建站
  • 中国手机网站热点新闻最新消息
  • 做网站维护挣钱吗软文范例大全1000字
  • biz网站后缀百度收录入口提交查询
  • 网站开发的数据库设计实体是什么如何提高网站排名的方法
  • 西安市建设银行网站百度收录排名查询
  • 做网站的流程是什么商业推广软文范例
  • html网站作业宁波seo营销平台
  • 美的技术网站国家优化防控措施
  • 网站申请qq百度小说网
  • php wap网站源码seo优化方案案例
  • 公司支付的网站建设如何入账搜索引擎营销简称seo
  • 如何开一家网站建设公司一个网站可以优化多少关键词
  • 做国外网站什么好个人如何做网络推广
  • awds网站开发留学个人免费网站创建入口
  • 网站建设和关键词优化技巧百度权重1