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

做科研找论文的网站wordpress 文章标题

做科研找论文的网站,wordpress 文章标题,自我介绍ppt模板免费,wordpress 评论500题目 链表的中间结点原题入口题目内容题目解析思路一代码实现一思路二代码实现二 链表中倒数第k个结点题目链接题目内容思路代码实现 合并两个有序链表原题入口题目内容思路代码实现 反转链表题目传送入口题目内容思路一代码复现一思路二代码实现二 链表的中间结点 原题入口 … 题目 链表的中间结点原题入口题目内容题目解析思路一代码实现一思路二代码实现二 链表中倒数第k个结点题目链接题目内容思路代码实现 合并两个有序链表原题入口题目内容思路代码实现 反转链表题目传送入口题目内容思路一代码复现一思路二代码实现二 链表的中间结点 原题入口 题目内容 给你单链表的头结点 head 请你找出并返回链表的中间结点。 如果有两个中间结点则返回第二个中间结点。 题目解析 该题我们选择一次遍历返回中间结点,可以选择两次遍历,只是时间复杂度变大了,这里介绍比较优的解法 思路一 该思路利用快慢指针的方法,快指针一次跳两个结点,慢指针一次跳一个结点,来实现中间的效果,此处中间的思想有了头绪,那么结束循环的条件又是我们要考虑的了,如果是奇数个结点,fast在最后一个结点停止,最后一个结点的next才等于NULL,奇数的结束条件是fast-nextNULL;就偶数而言,结束条件就是NULL 代码实现一 struct ListNode* middleNode(struct ListNode* head) {struct ListNode* fasthead,* slowhead;//可以简化代码,把slow去除,直接替换为headwhile(fastfast-next){slowslow-next;fastfast-next-next;}return slow; }思路二 核心思想是使用两个计数器 count 和 ret通过遍历链表找到中间位置的节点。其中通过判断 count / 2 1 ret 来确定是否为中间位置。这样当循环结束时head 指向的节点即为链表的中间节点。 代码实现二 struct ListNode* middleNode(struct ListNode* head) {struct ListNode* tem head;int count 1,ret 1;while(tem){ if(count/21ret){headhead-next;ret;}count; temtem-next;}return head; }链表中倒数第k个结点 题目链接 题目内容 输入一个链表输出该链表中倒数第k个结点。 思路 快慢指针的思想,先让快指针走k步,然后快慢指针同时走,注意判断快指针是否越界 代码实现 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* p1pListHead,* p2pListHead;while(k--){if(p1NULL) return NULL;p1p1-next;}while(p1){p2p2-next;p1p1-next;}return p2; }合并两个有序链表 原题入口 题目内容 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 思路 类似两个有序数组合并,先考虑空链表的情况,再通过遍历两个有序链表一次逐个比较节点的值将较小的节点连接到合并链表中最终得到合并后的有序链表。 代码实现 struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {struct ListNode* head NULL,* tail NULL;if(list1NULL) return list2;if(list2NULL) return list1;while(list1list2){if(list1-vallist2-val){if(headNULL){headtaillist2;}else{tail-nextlist2;tailtail-next;}list2list2-next;}else {if(headNULL){headtaillist1;}else{tail-nextlist1;tailtail-next;} list1list1-next;}}if(list1)tail-nextlist1;if(list2)tail-nextlist2;return head; }反转链表 题目传送入口 题目内容 给你单链表的头节点 head 请你反转链表并返回反转后的链表。 思路一 在遍历链表的过程中,改变结点指向的方向,原题实例,如果将2的next指向1的话,你就丢失2之后的结点,所以我们要用3个指针**,前两个指针改变导向,第三个指针记录第二个指针的下一个位置** 代码复现一 struct ListNode* reverseList(struct ListNode* head) { if(headNULL) return NULL;struct ListNode* p1 NULL;struct ListNode* p2 head;struct ListNode* p3 head-next;while(p2){p2-next p1;p1p2;p2p3;if(p3)p3p3-next;}return p1; }思路二 第二种思路与第一种比较相似,第二种采用尾插的方法来进行结点的逐个插入,仍旧采用三指针,前两个指针对结点尾插,第三个结点记录下一个结点的位置,防止失去与原链表的关联 代码实现二 struct ListNode* reverseList(struct ListNode* head) {struct ListNode* rhead NULL, * cur head;while (cur){struct ListNode* next cur-next;cur-next rhead;rhead cur;cur next;}return rhead; }
http://www.sczhlp.com/news/270907/

相关文章:

  • 网站怎么建设微信支付宝支付功能国外网站做家具哪个好
  • 网站推广的资源合作推广怎么制作一款自己的app
  • 建设flash网站南宁刚刚发生的事
  • 专业做ea的网站八方资源网做网站优化怎么样
  • 怎么做淘宝客网站页面花瓣网素材
  • 网站主要内容包括什么江小白网络营销案例
  • iis网站属性怎么打开网站建设论文范文
  • 北京代建网站投资管理公司注册
  • 平顶山建设网站用手机如何制作简历
  • 潮阳网站建设公司html网页制作公司
  • 网站灰色 代码seo快速排名工具
  • 郑州公司做网站汉狮网络服务租赁合同范本
  • 六安建设局网站台州做网站需要多少钱
  • 上海专业网站建设价格襄阳网站排名优化
  • 自己做网站前期困难吗网页制作工作描述
  • 网站维护与排名珠海响应式网站建设价格
  • 响应式网站的制作网站制作淄博网站制作定制品牌
  • 东莞网站优化排名免费一键自助建站官网
  • 平面设计找图网站青岛手机网站制作
  • 可信网站logo花坛设计平面图
  • 专门学设计的网站宁波东钱湖建设局网站
  • 上海高端网站建设定制互动案例的网站
  • 南沙建设局网站网站开发的技术
  • wordpress动漫电影主题长春关键词优化报价
  • 网站建设作者墙这个模板电商网站建设市场分析
  • 成功的电子商务网站设计做电影网站步骤
  • 《计算机系统结构》学习笔记
  • AI元人文:智能理性主体的崛起——当AI成为文明的对话伙伴
  • 网站建设销售找客户话术番禺企业网站建设
  • 上海做网站的小公司泊头网站建设服务