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

贵州交通建设集团网站上传文档网站开发

贵州交通建设集团网站,上传文档网站开发,网站备案必须是企业吗,免费建立一个网站题目链接:876.链表的中间结点 题目描述: 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5…

题目链接:876.链表的中间结点

题目描述:

        给你单链表的头结点 head ,请你找出并返回链表的中间结点。

        如果有两个中间结点,则返回第二个中间结点。

示例 1:

输入:head = [1,2,3,4,5]
输出:[3,4,5]
解释:链表只有一个中间结点,值为 3 。

示例 2:

输入:head = [1,2,3,4,5,6]
输出:[4,5,6]
解释:该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。

提示:

  • 链表的结点数范围是 [1, 100]
  • 1 <= Node.val <= 100

思路一:获取链表结点总数,除2获取中间结点,返回中间结点对应位置

    ListNode* pcur = head;int size = 0;

        定义pcur遍历链表size记录链表中结点个数

    while(pcur){size++;pcur = pcur->next;}

        只要结点不为空,size就自增一,跳出循环时,size则为链表结点个数。

    int mid = size/2;ListNode* middleNode = head;while(mid--){middleNode = middleNode->next;}

        再次遍历,获得中间结点位置。

完整代码:

 typedef struct ListNode ListNode;
struct ListNode* middleNode(struct ListNode* head) {ListNode* pcur = head;int size = 0;while(pcur){size++;pcur = pcur->next;}int mid = size/2;ListNode* middleNode = head;while(mid--){middleNode = middleNode->next;}return middleNode;
}

        时间复杂度O(n) 

思路二:快慢指针

    ListNode* slow = head;ListNode* fast = head;

        定义slow和fast指针,并控制slow每次在循环中走一步,fast每次在循环中走两步。

        那么slow和fast走过的路程满足以下等式:

        2*(slow的路程) = fast的路程,那么跳出循环时slow就指向链表的中间结点

图示:

        若链表结点个数为奇数:

        循环条件为fast的next指针不能为空。

        若链表节点个数为偶数:

        循环条件为fast不能为空。

完整代码:

 typedef struct ListNode ListNode; 
struct ListNode* middleNode(struct ListNode* head) {ListNode* slow = head;ListNode* fast = head;while(fast && fast->next){slow = slow->next;fast = fast->next->next;}return slow;
}

        注意,这里的循环条件不能写成:

while(fast->next && fast)

        若fast为空指针,先解引用,会由于短路造成程序退出。

        时间复杂度O(n)


文章转载自:

http://t9dDrk0k.jxscp.cn
http://k5BSbZVj.jxscp.cn
http://IJwBE29Q.jxscp.cn
http://kEsUxFWU.jxscp.cn
http://DMcEPmIr.jxscp.cn
http://ykMbbHsC.jxscp.cn
http://i1vhyv17.jxscp.cn
http://FeNS1me6.jxscp.cn
http://WIOuuRzD.jxscp.cn
http://sREQtFq6.jxscp.cn
http://EZpRT8Vx.jxscp.cn
http://wEF83pPQ.jxscp.cn
http://giVTBW3u.jxscp.cn
http://lPlY8uDY.jxscp.cn
http://k4Gis3wa.jxscp.cn
http://dET8zLqw.jxscp.cn
http://rY8l7Qjs.jxscp.cn
http://naggGkYZ.jxscp.cn
http://Mh4prIbN.jxscp.cn
http://lo8HWmYH.jxscp.cn
http://T6aJgowf.jxscp.cn
http://O7KGLv5j.jxscp.cn
http://oNUAm5i6.jxscp.cn
http://FOZQn0Hh.jxscp.cn
http://UU00achS.jxscp.cn
http://taDgYsDy.jxscp.cn
http://t7rRDNyn.jxscp.cn
http://3vAikOvm.jxscp.cn
http://QB8pKqLf.jxscp.cn
http://101KzZme.jxscp.cn
http://www.dtcms.com/wzjs/665880.html

相关文章:

  • 杭州微信网站制作wordpress 网页慢
  • 长春市星宿科技网站建设公司怎么样logo模板下载网站推荐
  • 快法务网站开发家在深圳app下载
  • 兰州网站建设优化网站搭建免费软件
  • 重庆网站建设近重庆零臻科技长沙优化科技有限公司正规吗
  • 免费com域名注册网站seoul是哪个国家
  • 荆州公司做网站云服务器管理
  • 单位门户网站建设方案台州做网站电话
  • 诸城网站做的好的软件程序员
  • 做兼职的网站打字员传媒公司创业
  • 洛阳 网站建设 大师字画商机网wordpress模板
  • 陕西省城乡住房建设厅网站朋友做的网站图片不显示不出来
  • 阿里云做视频网站摄影设计师招聘
  • 网站开发与维护前景沭阳奥体小区做网站的
  • 珠海十大网站建设公司十大知名平面设计公司
  • 网站开发技术课程设计说明书河北特定网站建设推荐
  • html5网站带后台南江县住房和城乡建设局网站
  • wordpress4.9.8 php版本厦门seo外包
  • html5网站都有那个seo在线培训机构
  • 阳春市住房规划建设局网站上海公共招聘网网址
  • 手机版做网站免费电子商务网站模板
  • 互联网保险管理办法网站优化关键词公司
  • wordpress建站安全性电商网站备案流程
  • 网站上的动图都怎么做的宁德网
  • 网站推荐几个免费的android 网站开发
  • 企业年报查询网站如何做泰国网站
  • 变更icp备案网站信息汉源网站建设
  • dede网站如何换源码wordpress 加载 蛮
  • 邯郸网站优化怎么用手机网站建设找哪家好
  • 重庆最便宜的网站建设公司上海工程建设信息网站