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

网站建设 分析工程招标平台

网站建设 分析,工程招标平台,电子网站建设心得,公司邮箱签名模板正如标题所说#xff0c;本文会图文详细解析三道单链表OJ题#xff0c;分别为#xff1a; 反转链表 #xff08;简单#xff09; 链表的中间节点 #xff08;简单#xff09; 链表的回文结构 #xff08;较难#xff09; 把他们放在一起讲的原因是#xff1a; 反转链…正如标题所说本文会图文详细解析三道单链表OJ题分别为 反转链表 简单 链表的中间节点 简单 链表的回文结构 较难 把他们放在一起讲的原因是 反转链表 和 链表的中间节点 是 链表的回文结构 的基础 为什么这样说请往下看 目录 1. 反转链表 做题思路 画图理解 代码实现 2. 链表的中间节点 做题思路 画图理解 代码实现 3. 链表的回文结构 做题思路 画图理解 代码实现 1. 反转链表 LeetCode链接206. 反转链表 - 力扣LeetCode 做题思路 遍历链表改变每个节点的链接方向使其链向前节点如果是第一个节点使其链向 NULL  这里需要3个指针 cur 指向当前需要修改的节点 prev 记录 cur 的前一个节点 cur 要链向此节点 next 记录 cur 的后一个节点避免 cur 改变链接方向后找不到下个节点 画图理解 ✍️代码实现 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* cur head;struct ListNode* prev NULL;while (cur ! NULL){struct ListNode* next cur-next;cur-next prev;prev cur;cur next;}return prev; } 最后提交代码试试 完美通过本题并不难来搞下一题 2. 链表的中间节点 LeetCode链接876. 链表的中间结点 - 力扣LeetCode 做题思路 快慢指针搞两个指针一个叫 fast 一个叫 slow 快指针 fast 一次走两步慢指针 slow 一次走一步当 fast 走到 NULL 时 slow 恰好在中间此时 slow 指向的节点就是中间节点 画图理解 ✍️代码实现 struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head;struct ListNode* fast head;while (fast ! NULL fast-next ! NULL){slow slow-next;fast fast-next-next;}return slow; } 提交代码 这道题也很简单主要就是快慢指针的思路第一次接触的话可能想不到这种方法 接下来就是本文重点了前面这些只是开胃小菜 3. 链表的回文结构 牛客链接链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 做题思路 1. 找到中间节点 2. 反转中间节点及其之后的链表 3. 此时把链表分为两段 未反转的链表为一段用指针 list1 指向这段链表的头节点反转过的链表为另一段用指针 list2 指向这段链表的头节点 4. 比较 list1 和 list2 节点的值是否相等 如果相等 list1 和 list2 同时往后走去比较下一组数据如果不相等说明链表不是回文结构返回 false  5. 当 list2 走到 NULL 处时说明此链表是回文结构返回 true  画图理解 可以看到本题需要调用之前写过的代码 这就是为什么我说前两道题是本题的基础 ✍️代码实现 //找链表的中间节点 struct ListNode* middleNode(struct ListNode* head) {struct ListNode* slow head;struct ListNode* fast head;while (fast ! NULL fast-next ! NULL){slow slow-next;fast fast-next-next;}return slow; }//反转链表 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* cur head;struct ListNode* prev NULL;while (cur ! NULL){struct ListNode* next cur-next;cur-next prev;prev cur;cur next;}return prev; }//牛客这道题不支持用C语言答题 //虽然我们还没有学C但是C是兼容C的 //直接用C的方式写代码即可 class PalindromeList { public:bool chkPalindrome(ListNode* head){struct ListNode* list1 head;struct ListNode* mid middleNode(head);struct ListNode* list2 reverseList(mid);while (list2 ! NULL){if (list1-val ! list2-val){return false;}list1 list1-next;list2 list2-next;}return true;} }; 提交代码 成功通过 怎么样大家看到这里把这三道题弄懂了吗如果有问题可以在评论区留言哦 :D 本文完
http://www.w-s-a.com/news/383731/

相关文章:

  • 免备案自助建站网站成都神速建站
  • 怎样编写app软件快速刷排名seo软件
  • 江苏做家纺的公司网站宣传型企业网站
  • 网站网上商城建设外国一些做环保袋的网站
  • 做空气开关那个网站推广比较好建站技术有哪些
  • 做网站前需要做什么准备wordpress图片云储存
  • 查楼盘剩余房源的网站地方网站推广
  • 农家乐网站建设方案创意平面设计公司简介
  • 信息化建设 网站作用网络营销的形式网站营销
  • 沈阳出名网站潍坊正规建设网站
  • 计算机软件开发需要学什么沈阳网站关键字优化
  • 关于军队建设网站国内最好的wordpress主题
  • 小视频网站如何建设陪诊app开发
  • 英文网站首页优化国外手机网站源码
  • 网站建设公司如何找客户网站建设应该考虑哪些问题
  • 创新的江苏网站建设wordpress用户绑定手机
  • 自己做网赌网站网站设计者
  • 教育培训网站设计辽宁招标工程信息网
  • 韶关网站推广做网站要哪些人员
  • 建设银行网站链接开发公司与物业公司交接清单
  • 网站定位广告企业建网站有这个必要吗
  • 网站模板 商标黄冈建设工程信息网
  • 做鞋子的招聘网站有哪些微网站
  • 项目网站开发建网站 多少钱
  • wordpress做门户seo培训价格
  • 百度关键词优化软件如何wordpress站点地图优化
  • 使用cnnic证书的网站营销公司有哪些
  • 做电子杂志用什么网站如何将网站生成二维码
  • 三点水网站建设洛阳市建设厅网站
  • 哪家做网站便宜网络推广培训吧