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

哪里有做枪网站的百度导航是哪个国家的公司

哪里有做枪网站的,百度导航是哪个国家的公司,深圳市住建局工程交易服务网,长沙人才招聘网最新招聘2022目录 LeetCode之路——707. 设计链表 分析#xff1a; Code#xff1a; LeetCode之路——707. 设计链表 你可以选择使用单链表或者双链表#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性#xff1a;val 和 next 。val 是当前节点的值#xff0c;n…目录 LeetCode之路——707. 设计链表 分析 Code LeetCode之路——707. 设计链表 你可以选择使用单链表或者双链表设计并实现自己的链表。 单链表中的节点应该具备两个属性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 提示 0 index, val 1000 请不要使用内置的 LinkedList 库。 调用 get、addAtHead、addAtTail、addAtIndex 和 deleteAtIndex 的次数不超过 2000 。 分析 1.实现单向链表每个节点保存本身的值和后继节点。除此之外我们还需要一个哨兵sentinel节点作为头节点和一个size参数保存有效节点数。初始化时只需创建头节点head和size即可。 2.实现addAtIndex(index, val)时先判断index是有效值找到原来下标为 index的节点的前驱节点pred并创建新节点 toAdd将toAdd的后继节点设为pred 的后继节点将pred的后继节点更新为toAdd这样就将 toAdd插入到了链表中。最后需要更新size。哨兵节点的好处就在于这样的操作对于index0也成立。 需要注意链表的插入操作下面两行交换顺序会发生指针丢失和内存泄漏。 toAdd.next pred.next; // toAdd节点值为25pred节点值为0 pred.next toAdd; 3.实现deleteAtIndex(index)先判断index是否有效。然后找到下标为index的节点的前驱节点pred通过将 pred的后继节点更新为pred的后继节点的后继节点来达到删除节点的效果。同时也要更新size。 4.至于addAtHead(int val)和addAtTail(int val)其实就是addAtIndex(int index, int val)中index分别是0和size时候的情况。 Code class MyLinkedList {int size 0;ListNode head; ​public MyLinkedList() {// 链表节点数目size 0;// 哨兵节点方便判断头节点为空的情况head new ListNode(0);} ​public int get(int index) {// 判断index无效直接返回if (index size || index 0) {return -1;}// 找到index的前置节点ListNode pred head;for (int i 0; i index; i) {pred pred.next;}return pred.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无效直接返回if (index size || index 0) {return;}ListNode pred head;// 找到index前置节点for (int i 0; i index; i) {pred pred.next;}ListNode toAdd new ListNode(val);toAdd.next pred.next;pred.next toAdd;size;} ​public void deleteAtIndex(int index) {// 判断index无效直接返回if (index size || index 0) {return;}ListNode pred head;// 找到index前置节点for (int i 0; i index; i) {pred pred.next;}pred.next pred.next.next;size--;}} 时间复杂度初始化O(1)get为O(index)addAtHead为O(1)addAtTail为O(n)n为链表长度addAtIndex为O(index)。根据获取节点时循环次数可以知道时间复杂度的情况。 空间复杂度单次调用空间复杂度O(1)链表结构总体空间复杂度O(n)。
http://www.yutouwan.com/news/198191/

相关文章:

  • 企业做网站的步骤与做网站注意事项php mysql 网站模板
  • dw php网站建设视频教程定西营销型网站建设
  • 官方网站的重要性制作短视频的app哪个好
  • 郑州网站设计制作做薪酬调查有哪些网站
  • 珠海企业网站建设服务赣榆区住房和城乡建设局网站
  • 平面设计 网站推荐wordpress信息发布付费
  • 设备租赁业务网站如何做度假村网站模板
  • 微信如何做积分商城网站可以自己做免费网站吗
  • 网站建设及维护学习网站开发 网站设计
  • 网站备案时间太长深圳龙华区新石社区
  • 电子网站建设设计WordPress建站可以吗
  • 网站 入站规则 设置无锡网站建设推广公司
  • 广州专业网站设计公司wordpress连接错误
  • 深圳网站开发语言学生模拟网站开发项目
  • 简单大气的成品网站企业统一登录平台
  • 网站网页设计工作内容易思网站系统
  • 企业网站建设服务哪家好如何下载ppt模板免费
  • 温州网站设计哪家公司好佛山微信网站推广多少钱
  • 网站模块怎么恢复织梦网站栏目不能更新
  • 什么是网站域名?上海包装设计公司有哪些
  • html制作静态网站模板网站建设怎么做分录
  • 云南网站建设方法宣城做网站
  • 个人网站怎么自己备案廊坊网站制作潍坊公司电话
  • WordPress建站步骤广西桂林旅游攻略
  • 帝国和织梦那个做企业网站好js网站页面效果代码
  • 论坛网站用的虚拟主机传奇世界官网电脑版
  • wordpress 微网站模板榆林城乡建设规划官方网站
  • 建网站需要什么步骤黄石做网站
  • 有经验的聊城网站建设网站用图怎么做文件小质量高
  • 教育行业网站北京企业网站开发公司哪家好