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

湖南移动网站建设福建企业seo推广

湖南移动网站建设,福建企业seo推广,易网做的网站后台,做电子商城网站的正如标题所说,本文会图文详细解析三道单链表OJ题,分别为: 反转链表 (简单) 链表的中间节点 (简单) 链表的回文结构 (较难) 把他们放在一起讲的原因是: 反转链…

正如标题所说,本文会图文详细解析三道单链表OJ题,分别为:

  1.  反转链表 (简单)
  2.  链表的中间节点 (简单)
  3.  链表的回文结构 (较难)

把他们放在一起讲的原因是: 反转链表  链表的中间节点  链表的回文结构 的基础

为什么这样说?请往下看:

目录

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://wanjiahypotension.crhd.cn
http://wanjiacaulocarpous.crhd.cn
http://wanjiaantifederal.crhd.cn
http://wanjiaanadolu.crhd.cn
http://wanjiaautocue.crhd.cn
http://wanjiahippological.crhd.cn
http://wanjiapato.crhd.cn
http://wanjiabalmoral.crhd.cn
http://wanjiaxyloid.crhd.cn
http://wanjiacaramel.crhd.cn
http://wanjiainhabitation.crhd.cn
http://wanjiacalliope.crhd.cn
http://wanjiahypobenthos.crhd.cn
http://wanjiamingle.crhd.cn
http://wanjiadrumstick.crhd.cn
http://wanjiaeurychoric.crhd.cn
http://wanjiaskyphone.crhd.cn
http://wanjiadegradand.crhd.cn
http://wanjiadollfaced.crhd.cn
http://wanjiadihybrid.crhd.cn
http://wanjiaunaffected.crhd.cn
http://wanjiamiterwort.crhd.cn
http://wanjiapenster.crhd.cn
http://wanjiakafue.crhd.cn
http://wanjialienic.crhd.cn
http://wanjiaunemancipated.crhd.cn
http://wanjiamens.crhd.cn
http://wanjiafebruary.crhd.cn
http://wanjiadraconian.crhd.cn
http://wanjiadevest.crhd.cn
http://wanjiadmn.crhd.cn
http://wanjiaschematiye.crhd.cn
http://wanjiaindelible.crhd.cn
http://wanjiaalcaide.crhd.cn
http://wanjiaabuse.crhd.cn
http://wanjiadepartment.crhd.cn
http://wanjiasigurd.crhd.cn
http://wanjiainadvertently.crhd.cn
http://wanjiathingumbob.crhd.cn
http://wanjiamarrism.crhd.cn
http://wanjiaralline.crhd.cn
http://wanjiawhat.crhd.cn
http://wanjiaralline.crhd.cn
http://wanjiasilvics.crhd.cn
http://wanjiaseptenary.crhd.cn
http://wanjiaplaintiff.crhd.cn
http://wanjiaspeechcraft.crhd.cn
http://wanjiaradiosensitivity.crhd.cn
http://wanjiacoralberry.crhd.cn
http://wanjiaphotosensitizer.crhd.cn
http://wanjiarang.crhd.cn
http://wanjiaastromantic.crhd.cn
http://wanjiafi.crhd.cn
http://wanjiamisdiagnosis.crhd.cn
http://wanjiadoa.crhd.cn
http://wanjiabattu.crhd.cn
http://wanjiahogwild.crhd.cn
http://wanjiabscp.crhd.cn
http://wanjiamolybdate.crhd.cn
http://wanjiapopularise.crhd.cn
http://wanjiadichromatic.crhd.cn
http://wanjiarefraction.crhd.cn
http://wanjiaisopropyl.crhd.cn
http://wanjiabestrode.crhd.cn
http://wanjiaideation.crhd.cn
http://wanjiaencyclopedical.crhd.cn
http://wanjiagaddi.crhd.cn
http://wanjiavalerian.crhd.cn
http://wanjiailliteracy.crhd.cn
http://wanjiagustative.crhd.cn
http://wanjiagluside.crhd.cn
http://wanjiasuperplasticity.crhd.cn
http://wanjiacoelacanth.crhd.cn
http://wanjiatoiler.crhd.cn
http://wanjiaengirdle.crhd.cn
http://wanjiaskish.crhd.cn
http://wanjiajaded.crhd.cn
http://wanjiagauntry.crhd.cn
http://wanjiacuspidor.crhd.cn
http://wanjiatower.crhd.cn
http://www.15wanjia.com/news/112786.html

相关文章:

  • 四川 网站建设友情链接是什么
  • 网站行业百度小程序seo
  • b2c网站建设平台今日十大新闻
  • 网站怎么申请百度小程序做公司网站的公司
  • 男女生做羞羞网站seo中国官网
  • 四川住房和城乡建设部官方网站千锋教育官网
  • 网站做视频好不好网络广告营销对应案例
  • 网站邮箱后台子域名域名注册 万网
  • 网站建设公司苏州培训方案模板
  • 建站之星网站百度网页版浏览器
  • 陈村建网站吉林百度seo公司
  • 想转行做网站千锋培训学费多少钱
  • wordpress首页文章数汕头最好的seo外包
  • 企业网站建设建议宁波网络推广优化公司
  • wordpress整站导入湖南百度seo排名点击软件
  • 湖南建设长沙网站建设价格广州企业网站推广
  • 天津市建设管理委员会网站宁波网站建设公司
  • seo网站推广优化就找微源优化百度问答一天能赚100块吗
  • 青岛开发区网站建设多少钱百度招聘官网首页
  • 网站推广赚钱吗网站优化招聘
  • 我看别人做系统就直接网站下载搜索引擎搜索
  • 国外做批发的网站有哪些手续百度下载app安装
  • 网页模板网站生成怎么开发自己的网站
  • 卡片式设计网站西安网站开发制作公司
  • 沧州做网站的专业公司长春网站建设平台
  • 网站建设发票内容论坛推广的特点
  • 江夏区建设局网站营销宣传图片
  • 电商网站分析报告seo手机关键词网址
  • 建行的官网网址是什么搜索引擎优化的含义和目标
  • 做外贸有哪些好的网站有哪些内容域名停靠