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

做1688网站运营工资怎么样手机的网站建设目标

做1688网站运营工资怎么样,手机的网站建设目标,长春建设招标网,佛山哪里有做网站的文章目录 链表理论知识定义链表删除链表 Leetcode203 移除链表元素代码实现 Leetcode707 设计链表代码实现复杂度分析错误点 Leetcode206 反转链表新建链表双指针法 链表理论知识 链接: https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.h… 文章目录 链表理论知识定义链表删除链表 Leetcode203 移除链表元素代码实现 Leetcode707 设计链表代码实现复杂度分析错误点 Leetcode206 反转链表新建链表双指针法 链表理论知识 链接: https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E9%93%BE%E8%A1%A8%E7%9A%84%E7%B1%BB%E5%9E%8B 定义链表 // 单链表的节点定义 struct ListNode {int data; // 节点上存储的元素ListNode *next; // 指向下一个节点的指针ListNode(int val) : data(val), next(nullptr) {} // 节点的构造函数 };// 双链表的节点定义 struct DoublyLinkedListNode {int data;DoublyLinkedListNode * prev;DoublyLinkedListNode * next;DoublyLinkedListNode(int val): data(val), prev(nullptr), next(nullptr) {} };// 新建一个节点 ListNode* head new ListNode(5);删除链表 需手动释放这个D节点释放这块内存 链表的增添和删除都是O(1)操作也不会影响到其他节点. 如果删除最后一个节点需要从头节点查找到第四个节点通过next指针进行删除操作查找的时间复杂度是O(n) // 删除头节点 ListNode * tmp head; head head-next; delete tmp;Leetcode203 移除链表元素 链接: https://leetcode.cn/problems/remove-linked-list-elements/description/ 代码实现 ListNode* removeElements(ListNode* head, int val) {// 循环删除满足要求的头节点while (head ! nullptr head-val val) {ListNode * tmp head;head head-next;delete tmp;}ListNode* current_node head;// 该循环内已经包含了最后一个节点需要删除的情况while (current_node ! nullptr current_node-next ! nullptr) {if (current_node-next-val val) {ListNode* tmp current_node-next;current_node-next current_node-next-next;delete tmp;} else {current_node current_node-next;}}return head; }Leetcode707 设计链表 链接: https://leetcode.cn/problems/design-linked-list/description/ 代码实现 class MyLinkedList { public:struct ListNode {int val;ListNode * next;ListNode(int data): val(data), next(nullptr) {}};MyLinkedList() {}int get(int index) {if (index size_ || index 0) {return -1;}ListNode* current_node head_;while (index-- 0) {current_node current_node-next;}return current_node-val;}void addAtHead(int val) {ListNode * new_node new ListNode(val);new_node-next head_;head_ new_node;size_;}void addAtTail(int val) {ListNode * current_node head_;if (current_node nullptr) {addAtHead(val);return;}while (current_node-next ! nullptr) {current_node current_node-next;}ListNode * new_node new ListNode(val);current_node-next new_node;size_;}void addAtIndex(int index, int val) {if (index size_ || index 0) {return;}if (head_ nullptr || index 0) {addAtHead(val);return;}ListNode * current_node head_;while (--index 0) {current_node current_node-next;}ListNode * new_node new ListNode(val);new_node-next current_node-next;current_node-next new_node;size_;}void deleteAtIndex(int index) {if (index 0 || index size_) {return;}if (index 0) {ListNode * tmp head_;head_ head_-next;delete tmp;} else {ListNode * current_node head_;while (--index 0) {current_node current_node-next;}ListNode * tmp current_node-next;current_node-next current_node-next-next;delete tmp;}size_--;}// 打印链表void printList() const {ListNode* temp head_;while (temp ! nullptr) {std::cout temp-val - ;temp temp-next;}std::cout nullptr std::endl;}private:ListNode * head_{nullptr};int size_{0}; };/*** 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);*/复杂度分析 时间复杂度初始化消耗 O(1)get 消耗 O(index)addAtHead 消耗 O(1)addAtTail 消耗 O(n)其中 n 为链表当前长度即 addAtHeadaddAtTail 和 addAtIndex 已调用次数之和addAtIndex 消耗 O(index)。 空间复杂度所有函数的单次调用空间复杂度均为 O(1)总体空间复杂度为 O(n)其中 n 为 addAtHeadaddAtTail 和 addAtIndex 调用次数之和。 错误点 在调用addAtIndex函数时, 多次向头部插入时出错, 除判断head_ nullptr外还需要判断index 0插入和删除的while循环条件和get中的条件不同 Leetcode206 反转链表 链接: https://leetcode.cn/problems/reverse-linked-list/description/ 代码随想录解析: https://programmercarl.com/0206.%E7%BF%BB%E8%BD%AC%E9%93%BE%E8%A1%A8.html#%E6%80%9D%E8%B7%AF 时间复杂度: O(N) 空间复杂度: O(1) 新建链表 会造成内存浪费 双指针法 需特别注意, 在初始化prev和cur指针后, 需将prev-next更新为nullptr, 避免循环嵌套 ListNode* reverseList(ListNode* head) {if (head nullptr || head-next nullptr) {return head;}ListNode * prev head;ListNode * cur head-next;prev-next nullptr;while (cur ! nullptr) {ListNode * tmp cur-next;cur-next prev;prev cur;cur tmp;}return prev; }
http://www.w-s-a.com/news/345787/

相关文章:

  • 网站有域名没备案天津网络营销
  • 哈巴狗模式网站开发电子商务平台建设与运营技术
  • 摄影网站源码wordpress内涵段子
  • 实验一 电子商务网站建设与维护图片做网站
  • 网站策划书模板大全中国建设部官方网站资格证查询
  • vps绑定多个网站创意咨询策划公司
  • 做qq图片的网站网页制作与网站建设江西
  • 做爰全过程的视频网站网络文化经营许可证怎么办
  • 常德市网站建设网站开发用哪个软件好
  • 网站文章怎么更新时间重庆勘察设计网
  • 外卖网站设计企业网站优化做法
  • 专业的营销型网站制作wordpress版权年份
  • 程序员会搭建非法网站吗怎么把wordpress字去掉
  • 牡丹江营商环境建设监督局网站中国档案网站建设的特点
  • 网站欣赏网站欣赏知名企业网站搭建
  • 书店网站建设可行性分析为大型企业设计网络营销方案
  • 北京教育云平台网站建设中国服装设计网站
  • 网络公司专业做网站豌豆荚app下载
  • 网站建设属于什么岗位济宁网站建设_云科网络
  • wordpress网站监测fwa 网站 欣赏
  • 用jsp做的可运行的网站推广网络
  • 电商网站设计论文wordpress子文件夹建站
  • 临沂网站优化如何如何做公司的网站建设
  • 建设部网站 光纤到户沈阳网页设计兼职
  • 企业网站建设作用宁波企业网站推广效果好
  • wordpress课件站模板做网站的公司 贵阳
  • 低价格网站建设网站建设中的板块名称
  • 青岛网站建设华夏h5链接是什么意思
  • 贸易公司如何做网站百度做的网站一般在什么后台
  • 东莞网站设计方案广州做服装电商拿货的网站