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

网站制作视频教程网站建设的解决办法

网站制作视频教程,网站建设的解决办法,深圳推广平台,企业网站建设营销优化方案提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 链表理论基础203.移除链表元素思路与重点 707.设计链表思路与重点 206.反转链表思路与重点 链表理论基础 C/C的定义链表节点方式: // 单链表 struct L…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 链表理论基础
  • 203.移除链表元素
    • 思路与重点
  • 707.设计链表
    • 思路与重点
  • 206.反转链表
    • 思路与重点

链表理论基础

  • C/C++的定义链表节点方式:
// 单链表
struct ListNode {int val;  // 节点上存储的元素ListNode *next;  // 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {}  // 节点的构造函数
};
  • 数组与链表的对比:

203.移除链表元素

  • 题目链接:203. 移除链表元素 - 力扣(LeetCode)
  • 讲解链接:代码随想录 (programmercarl.com)
  • 状态:提交一次后AC。

思路与重点

  • 使用了一个虚拟头节点,指向题目给出的头节点,然后遍历链表开始删除,最后返回虚拟头节点的next指针即可。主要使用C++时不要忘记释放掉被删除节点占用的空间
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {ListNode* dummy_head = new ListNode(-1, head);ListNode* cur = dummy_head;while(cur->next != nullptr){if(cur->next->val == val){ListNode* temp = cur->next->next;delete cur->next;cur->next = temp;}else cur = cur->next;}head = dummy_head->next;delete dummy_head;return head;}
};
  • 链表的定义具有递归的性质,因此链表题目常可以用递归的方法求解。这道题要求删除链表中所有节点值等于特定值的节点,可以用递归实现。
class Solution {
public:ListNode* removeElements(ListNode* head, int val) {// 基础情况:空链表if (head == nullptr) {return nullptr;}// 递归处理if (head->val == val) {ListNode* newHead = removeElements(head->next, val);delete head;return newHead;} else {head->next = removeElements(head->next, val);return head;}}
};

707.设计链表

  • 题目链接:707. 设计链表 - 力扣(LeetCode)
  • 讲解链接:代码随想录 (programmercarl.com)
  • 状态:直接看题解了。

思路与重点

  • 使用虚拟头结点可以很大降低写代码的复杂程度。
  • 注意LinkedNode* cur = _dummyHead;LinkedNode* cur = _dummyHead->next;
class MyLinkedList {
public:struct LinkedNode {int val;LinkedNode* next;LinkedNode(int val):val(val), next(nullptr){}};MyLinkedList() {_dummyHead = new LinkedNode(0);_size = 0;}int get(int index) {if(index < 0 || index >= _size){return -1;}LinkedNode* cur = _dummyHead->next;while(index--){cur = cur->next;}return cur->val;}void addAtHead(int val) {LinkedNode* newNode = new LinkedNode(val);newNode->next = _dummyHead->next;_dummyHead->next = newNode;_size++;}void addAtTail(int val) {LinkedNode* newNode = new LinkedNode(val);LinkedNode* cur = _dummyHead;while(cur->next) cur = cur->next;cur->next = newNode;_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;}       newNode->next = cur->next;cur->next = newNode;_size++; }void deleteAtIndex(int index) {if(index >= 0 && index < _size){LinkedNode* cur = _dummyHead;while(index--){cur = cur->next;}LinkedNode* temp = cur->next;cur->next = cur->next->next;delete temp;temp = nullptr;_size--;}  else return;}private:LinkedNode* _dummyHead;int _size;
};

206.反转链表

  • 题目链接:206. 反转链表 - 力扣(LeetCode)
  • 讲解链接:代码随想录 (programmercarl.com)
  • 状态:直接去看卡哥视频了。

思路与重点

  • 用双指针法很好解决,不需要用新的链表分配空间。卡哥的视频讲的是真清晰啊,用以下的动图很好理解。

class Solution {
public:ListNode* reverseList(ListNode* head) {ListNode* cur = head;ListNode* pre = nullptr;ListNode* temp = nullptr;while(cur){temp = cur->next;cur->next = pre;pre = cur;cur = temp;}return pre;}
};
  • 也可以用递归的方式解决,递归的解决思路其实和双指针法一样。
class Solution {
public:ListNode* reverseList(ListNode* head) {return reverse(nullptr, head);}ListNode* reverse(ListNode* pre, ListNode* cur){if(!cur) return pre;ListNode* temp = cur->next;cur->next = pre;return reverse(cur, temp);}
};
http://www.yayakq.cn/news/865492/

相关文章:

  • 外贸英文网站阳江网站建设
  • 建站 网站程序西安软件公司排行榜
  • 什么网站可以做试卷网站首页横版图怎么做
  • 南京工程网站建设做网站需求需要沟通什么
  • 石家庄做网站建设公司抖音流量推广神器软件免费
  • 电脑硬盘做网站服务器教程微格式wordpress
  • 100个免费设计网站南皮县做网站价格
  • 成都网站建设天府软件园公司变更登记申请书下载
  • 关于12380网站建设文件深圳500强企业名单
  • 网站建设列表横向wordpress 上传中文文件名
  • 安徽定制型网站建设推广公司网站建设需要显示什么软件
  • 灯具电商网站建设方案做网站上传服务器吗
  • 网站建设托管定制文山做网站的地方
  • 多用户网站建设方案前端开发就是做网站吗
  • 怎样在微信里做网站站长工具seo综合查询adc
  • 受欢迎的昆明网站建设网站上线详细步骤
  • 松江品划企业网站建设app应用网站html5模板
  • 北京网站制作多少钱网站漏洞解决
  • php网站开发培训学校西安百度框架户
  • 外贸网站建设网站简易网页制作工具
  • 499元做网站wordpress邮箱美化
  • 网站建设数据库多少钱12306建网站多少钱
  • 西安网站优化seo网络服务器忙请稍后重试3008是什么意思
  • 做房地产网站深圳物流公司电话号码
  • 商洛市城乡建设局网站wordpress html模板下载
  • 遂宁商城网站建设报价钢结构平台设计
  • 专业模板建站软件个人做跨境电商网站有哪些
  • 网站手机端做app开发做seo网站优化多少钱
  • 网站监控系统中国工信部备案查询系统
  • 网站如何在百度刷排名大白兔网络营销策划书