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

产品策划书范文案例重庆seo外包平台

产品策划书范文案例,重庆seo外包平台,wordpress 4.8.2漏洞,毛衣品 东莞网站建设题目描述 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的…

题目描述

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

单链表中的节点应该具备两个属性: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 。

分析思路

是一道链表的经典题,需要多做几遍,注意size的大小,和边界条件的判断。(一直晕晕的)

class MyLinkedList {
private:// 定义链表节点结构体struct LinkedNode{int val; // 值valLinkedNode* next; // 指针next// 三个构造函数LinkedNode():val(0), next(nullptr){} // 空参数LinkedNode(int val):val(val), next(nullptr){} // 一个参数LinkedNode(int val, LinkedNode* next): val(val), next(next){} // 两个参数};int _size; // 链表长度LinkedNode* _dummyHead; // 虚拟节点
public://  构造函数MyLinkedList() {_dummyHead = new LinkedNode(0); // _dummyHead初始化val=0,指向空_size = 0; // size大小为0}int get(int index) {if( index<0 || index > (_size-1)){ // 大于size-1无意义,等于有意义return -1;}LinkedNode* cur = _dummyHead->next; // 从head开始取值,因此指向dummyHead的nextwhile(index){cur = cur->next;index--;}return cur->val;}void addAtHead(int val) {LinkedNode* newHead = new LinkedNode(val);newHead->next = _dummyHead->next;_dummyHead->next = newHead;_size++;}void addAtTail(int val) {LinkedNode* tailNode = new LinkedNode(val);LinkedNode* cur = _dummyHead; while(cur->next != nullptr){cur = cur->next;}cur->next = tailNode;_size++;}void addAtIndex(int index, int val) {if (index > _size) return;if (index < 0) index = 0;LinkedNode* newNode = new LinkedNode(val);LinkedNode* cur = _dummyHead;while(index){cur = cur->next;index--;}newNode->next = cur->next;cur->next = newNode;_size++;}void deleteAtIndex(int index) {if(index<0 || index > (_size-1)) return;LinkedNode* cur = _dummyHead;while(index){cur = cur->next;index--;}LinkedNode* tmp = cur->next;cur->next = cur->next->next;delete tmp;//delete命令指示释放了tmp指针原本所指的那部分内存,//被delete后的指针tmp的值(地址)并非就是NULL,而是随机值。也就是被delete后,//如果不再加上一句tmp=nullptr,tmp会成为乱指的野指针//如果之后的程序不小心使用了tmp,会指向难以预想的内存空间tmp=nullptr;_size--;}
};/*** 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.ds6.com.cn/news/10537.html

相关文章:

  • 常德天恒建设网站湖南seo网站多少钱
  • 佛山网站建设开发团队交换友链平台
  • 大渡口网站建设哪家好兰州百度推广的公司
  • 莱芜哪家企业做网站新媒体运营岗位职责
  • 网站编程技术公司的公关
  • 北京高级网站建设seo快速推广
  • 用html5做的网站代码好123上网主页
  • 响应式网站设计的现状福建seo
  • 网站建设公司优惠中百度近日收录查询
  • 北京 顺义 网站制作百度权重4网站值多少钱
  • 如何做网页或网站谷歌seo服务商
  • 在线购物网站开发项目seo推广服务哪家好
  • 免费微网站模板qq推广
  • 客户关系管理案例seo的中文名是什么
  • jsp网站开发 pdf吉林seo刷关键词排名优化
  • 网站建设公司东莞网站建设制作专业
  • 盐城网站建设建站换友情链接的网站
  • 度假村网站模板世界杯数据分析
  • 广西两学一做网站2022年度关键词
  • 做团购网站的公司深圳seo顾问
  • 自己做的网站给人攻击了怎么办服务外包平台
  • 做经营行网站需要什么手续aso优化工具
  • 株洲网站建设费用app推广代理去哪里找
  • 高端网站建设的小知识关键词优化 搜索引擎
  • 湖州做网站推广的公司怎样推广网站
  • 哪个网站做香烟回收网络运营seo是什么
  • 绵阳最有实力的公司网站建设如何自己开发一个网站
  • 网站建设预算seo是什么意思 seo是什么职位
  • 二手车做网站的目的相关搜索优化软件
  • 做网站用百度浏览器阿亮seo技术