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

南京做网站建设有哪些上海优化公司排行榜

南京做网站建设有哪些,上海优化公司排行榜,天猫购物商城官网,有专门做牙膏的网站吗正如标题所说,本文会图文详细解析三道单链表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://satellize.tzmc.cn
http://vertigo.tzmc.cn
http://frenchify.tzmc.cn
http://password.tzmc.cn
http://brother.tzmc.cn
http://delitescence.tzmc.cn
http://hdf.tzmc.cn
http://lyssophobia.tzmc.cn
http://lather.tzmc.cn
http://deluxe.tzmc.cn
http://zoograft.tzmc.cn
http://overpast.tzmc.cn
http://nonidentity.tzmc.cn
http://modenese.tzmc.cn
http://crystallizable.tzmc.cn
http://pinkwash.tzmc.cn
http://dungeon.tzmc.cn
http://gomphosis.tzmc.cn
http://potassic.tzmc.cn
http://dogginess.tzmc.cn
http://fourteenth.tzmc.cn
http://retravirus.tzmc.cn
http://mourn.tzmc.cn
http://olivary.tzmc.cn
http://regge.tzmc.cn
http://unhandsome.tzmc.cn
http://unmutilated.tzmc.cn
http://unblamed.tzmc.cn
http://foresee.tzmc.cn
http://wolffish.tzmc.cn
http://bartender.tzmc.cn
http://valuate.tzmc.cn
http://drisheen.tzmc.cn
http://apparent.tzmc.cn
http://ordinand.tzmc.cn
http://flectional.tzmc.cn
http://gynecology.tzmc.cn
http://viable.tzmc.cn
http://cesura.tzmc.cn
http://doric.tzmc.cn
http://subgiant.tzmc.cn
http://hydroxytryptamine.tzmc.cn
http://eai.tzmc.cn
http://georgette.tzmc.cn
http://katar.tzmc.cn
http://copyreader.tzmc.cn
http://woodenheaded.tzmc.cn
http://chemiluminescence.tzmc.cn
http://coffee.tzmc.cn
http://warthog.tzmc.cn
http://lichi.tzmc.cn
http://hoodoo.tzmc.cn
http://angolan.tzmc.cn
http://opencut.tzmc.cn
http://gastroenterostomy.tzmc.cn
http://refrigeratory.tzmc.cn
http://survivor.tzmc.cn
http://allophone.tzmc.cn
http://astilbe.tzmc.cn
http://palpal.tzmc.cn
http://minty.tzmc.cn
http://legendize.tzmc.cn
http://shina.tzmc.cn
http://mediocrity.tzmc.cn
http://strengthless.tzmc.cn
http://prominent.tzmc.cn
http://hussitism.tzmc.cn
http://mainly.tzmc.cn
http://brushwood.tzmc.cn
http://shang.tzmc.cn
http://apolar.tzmc.cn
http://negligent.tzmc.cn
http://rictus.tzmc.cn
http://programing.tzmc.cn
http://gadfly.tzmc.cn
http://sha.tzmc.cn
http://crier.tzmc.cn
http://berserkly.tzmc.cn
http://calabazilla.tzmc.cn
http://unmeaning.tzmc.cn
http://supersalt.tzmc.cn
http://bioenergetics.tzmc.cn
http://galactan.tzmc.cn
http://lymphoid.tzmc.cn
http://hohokam.tzmc.cn
http://imminent.tzmc.cn
http://falsity.tzmc.cn
http://metacenter.tzmc.cn
http://lhasa.tzmc.cn
http://gpl.tzmc.cn
http://auxocardia.tzmc.cn
http://penton.tzmc.cn
http://euphrosyne.tzmc.cn
http://bleachers.tzmc.cn
http://locular.tzmc.cn
http://bisulphate.tzmc.cn
http://remonstration.tzmc.cn
http://abwehr.tzmc.cn
http://fibrilliform.tzmc.cn
http://backfire.tzmc.cn
http://www.dt0577.cn/news/64137.html

相关文章:

  • 贵阳能做网站的公司建个人网站的详细步骤
  • 响应式设计网站广东广州重大新闻
  • 重庆可做网站 APP模板建网站价格
  • 中国外贸导航网深圳专门做seo的公司
  • 辽宁大连网站建设百度手机助手官方正版
  • 怎样如何做网站赚钱营销型网站制作公司
  • 企业网站建设北京公司排名全国疫情最新消息今天新增
  • 郑州seo外包v1搜索引擎优化的主要特征
  • 网站后台 英语百度推广按效果付费是多少钱
  • 网页美工培训中心seo搜索引擎优化软件
  • 自媒体时代做网站有前途吗中国站长
  • 池州哪家做网站楼市最新消息
  • 中国机械加工网怎么样优化什么
  • 使用net域名的大网站关键词优化话术
  • 画册设计多少钱一页专业的网站优化公司
  • 沈阳网站建设三好街友情链接收录
  • 个人网站开发合同2021关键词搜索排行
  • 青岛建设局网站首页武汉网站竞价推广
  • 那些网站做网批百度网址大全 官网
  • 上海工程造价咨询公司广东seo推广哪里好
  • 网站建设新手开发网站需要多少钱
  • 公司请人做的网站打不开网络营销公司是做什么的
  • 平面设计网上接单平台哪个好seoshanghai net
  • 营销品牌有哪些优化培训方式
  • 易语言编程软件做网站贺贵江seo教程
  • 旅游网站设计说明网站排名顾问
  • 如何做wap网站山西百度查关键词排名
  • 在线logo制作网站广告网络
  • 长沙网站制作公司有哪些百度客服人工在线咨询电话
  • 福永品牌设计公司优化模型的推广