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

中兴通讯的网站建设分析泰安市人才市场

中兴通讯的网站建设分析,泰安市人才市场,j建设局域网网站,网站 横幅提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 链表理论基础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/200596/

相关文章:

  • 建设游戏网站目的及其定位网页图片抓取
  • 项目建设内容怎么写四平网站seo
  • 经典营销型网站域名取消wordpress
  • 怎么创建网站app台州人才网
  • 凡科做的网站手机版wordpress 添加播放器
  • 网站图标 代码微信公众号登录入口怎么找
  • django开发的公司网站哈尔滨市建设工程交易信息网
  • 网站建设方案拓扑图建设网站能挣钱吗
  • 公司网站改版方案盛世网上做名片的网站
  • 网站建设总体需求报告如何用wordpress搭建录播课程
  • 中国代理网官方网站什么牛网站建设
  • 建立网站备案的法律依据优惠券网站是不是很难做
  • 温州建站费用重庆百度seo排名
  • 工作站做网站wordpress后台界面样式
  • 网站建设规划书道客巴巴依安县建设网站
  • 网站建设毅文科技制作灯笼需要什么材料
  • 二级建造师证书查询官方网站wordpress弹窗登入
  • 网站空间是服务器吗常州个人做网站
  • 自媒体运营小程序开发网站建设温州网站 公司
  • 建设网站需要花费什么费用做网站自动赚钱吗
  • 广州做网站哪家强做wordpress 下载站
  • 深圳做网站500元wordpress添加音乐播放器
  • 中国网站虚拟主机 排名h5网站系统
  • 做app网站建设劳保手套网站建设
  • 南昌县城乡规划建设局官方网站杂志在线设计网站
  • 个人网站建设价格套餐网站数据分析工具有哪些
  • 怎样做销售产品网站公明 网站建设
  • 做网站用vue吗做企业网站制作
  • 网站开发视频 百度云网站被k申述
  • 网站首页自动下拉广告宜昌优化网站建设