首页 > 其他分享 >9.14 周四总结

9.14 周四总结

时间:2023-09-14 21:56:50浏览次数:39  
标签:总结 周四 val index int 9.14 next 链表 节点

今天学会巩固了数据结构课程讲的链表操作部分的内容。

以下是力扣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
以下是代码
class MyLinkedList { public:     MyLinkedList() {         this->size = 0;         this->head = new ListNode(0);     }         int get(int index) {         if (index < 0 || index >= size) {             return -1;         }         ListNode *cur = head;         for (int i = 0; i <= index; i++) {             cur = cur->next;         }         return cur->val;     }         void addAtHead(int val) {         addAtIndex(0, val);     }         void addAtTail(int val) {         addAtIndex(size, val);     }         void addAtIndex(int index, int val) {         if (index > size) {             return;         }         index = max(0, index);         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;     }         void deleteAtIndex(int index) {         if (index < 0 || index >= size) {             return;         }         size--;         ListNode *pred = head;         for (int i = 0; i < index; i++) {             pred = pred->next;         }         ListNode *p = pred->next;         pred->next = pred->next->next;         delete p;     } private:     int size;     ListNode *head; };

标签:总结,周四,val,index,int,9.14,next,链表,节点
From: https://www.cnblogs.com/luoqingci/p/17703579.html

相关文章

  • 9.14日记
    使用maven创建Javaweb项目运行成功14-Sep-202321:05:05.054信息[main]org.apache.catalina.core.StandardService.startInternal正在启动服务[Catalina]14-Sep-202321:05:05.054信息[main]org.apache.catalina.core.StandardEngine.startInternal正在启动Servlet引擎......
  • 信竞考试策略总结
    一、对于平常的CSP/NOIP/模拟考1.考试策略首先,通读题面,作出开题的选择。做好部分分的思考,建议将所有的简单的部分分都完全思考清楚再去开签到题。写完一道题的代码/思考好一道题之后,可以去厕所整理一下思路,进行放松。一张一弛才能有更好的发挥最后仅剩\(1.5h\)时,果断放......
  • 大二打卡(9.14)
    今天做了什么:上午聚精会神的听了刘立嘉老师的课,感觉这节课终于进入重点内容了,但是感觉上了两次课还是感觉只是开了个头,体育课,本来以为排球捡球没那么累,排球没那么难,结果一个小时之后,让我腿和腰都酸了,一口气喝了半升的水过了不到二十分钟就又渴了,暑假到现在第二次感受到了汗流满面......
  • 9.14
    消除double类型计算出现精度损失的方法packageBigDecimalTest;importjava.math.BigDecimal;publicclassTestBigDecimal{publicstaticvoidmain(String[]args){BigDecimalf1=newBigDecimal("0.05");BigDecimalf2=BigDecimal.valu......
  • 9.14闲话
    我草我今天真几把难受。感冒了。一天已经喝了三包板蓝根了现在一点好转的迹象都没有......
  • Python常用命令总结(一)
    Python语言特点开源、免费面向过程、面向对象、交互式编程面向过程:以事情或解决问题的过程为中心,主要考虑解决问题的思路和步骤面向对象:以事务为中心,主要考虑解决问题时涉及的事务的特征和行为获取键盘信息input()在终端显示信息print()整数类型int浮点类型float布尔类型bool字......
  • 9.14总结
    1.今天实现了IDEA连接到虚拟机的数据库。2.完成了对虚拟机中的数据进行java增删改查的操作。遇到的问题(已解决):1.IDEA中一直连接不上虚拟机,原因是我忘记在Windows中配置hadoop的系统环境变量导致的。2.IDEA识别不到虚拟机的主机号,原因是在Windows的host文件中没有对虚拟机进行......
  • 每日总结20230914
    代码时间(包括上课)5h代码量(行):50行博客数量(篇):1篇相关事项:1、今天上午上的是软件设计模式和软件需求与分析,软件设计模式讲的是建造者模式和原型模式,软件需求与分析讲的是需求和分析。2、今天下午上的是人机交互技术,讲的是vba也就是宏编程,也是根据word和Excel以及ppt进行操作的。......
  • 【考后总结】9 月 CSP-S 模拟赛 4
    9.14CSP模拟38T1我是A题每个点坐标都至少有一维卡上界。那么按照哪一维卡上界分成\((A,v,w),(u,B,w),(u,v,C)\)三类,对于点\((x,y,z)\),如果会被第一类点删去,那么第一维就不需要考虑了,只需要满足\(y\)不大于所有\(w\)大于等于\(z\)的第一类点中\(v\)的最大值。......
  • 9月14日总结
    一.今天做了什么1.今天学习了统一建模语言(1)用例图从用户的角度描述系统功能并指明各功能的操作者(2)静态图类图:描述了系统中类的静态结构包图:是包和类组成的表示包与包之间的关系。包图描述系统的分层结构对象图:是类图的实例(3)行为图描述系统动态模型和对象组成的交换关系......