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

dedecms 网站地图模板宁德seo公司

dedecms 网站地图模板,宁德seo公司,利用养生网站做竞价引流,北京网站建设 一流目录 一、找出并返回链表的中间结点 二、输出链表中倒数第k个结点 三、判断链表中是否有环 四、两个单链表相交 一、找出并返回链表的中间结点 给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。 要求:只遍历…

目录

一、找出并返回链表的中间结点

二、输出链表中倒数第k个结点

三、判断链表中是否有环

四、两个单链表相交


一、找出并返回链表的中间结点

给你单链表的头结点 head ,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
要求:只遍历一遍链表

可以使用快慢指针:fast 一次走两步,slow 一次走一步。当 fast == NULL(偶数个结点)或者 fast->next == NULL(奇数个结点)就停止,返回 slow。

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

注意:

1、一次性定义多个指针时,第二个及以后的指针名前面都要加 * 。

2、while( )括号内是循环继续的条件。

二、输出链表中倒数第k个结点

输入一个链表,输出该链表中倒数第k个结点。
要求:只遍历一遍链表

快慢指针:fast 先走 k - 1 步,然后 fast 和 sliow 同时走,直到 fast 走到链表的最后一个结点。

struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) 
{struct ListNode* slow, *fast; slow = fast = pListHead;while(--k){fast = fast->next;}while(fast->next){slow = slow->next; fast = fast->next;}
}

三、判断链表中是否有环

给你一个链表的头节点 head ,判断链表中是否有环。

使用快慢指针:fast 一次走两步,slow 一次走一步。

bool hasCycle(struct ListNode *head) 
{   if(head == NULL)return false;if(head->next == NULL)return false;struct ListNode * slow = head;struct ListNode * fast = head;while(fast && fast->next){fast = fast->next->next;slow = slow->next;if(fast == slow)return true;}return false;
}

注意循环的条件是 fast != NULL && fast->next != NULL。

四、两个单链表相交

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

要求:时间复杂度O(n),空间复杂度O(1)。

思路:1、分别求两个链表的长度 2、长的链表先走 差距步 3、同时走,第一个地址的结点相同就是交点

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{struct ListNode* tailA = headA, *tailB = headB; int lenA = 1, lenB = 1; while(tailA->next){tailA = tailA->next; ++lenA;}while(tailB->next){tailB = tailB->next; ++lenB;}if(tailA != tailB)return NULL;int gap = abs(lenA-lenB); struct ListNode* longList = headA, *shortList = headB; if(lenA ‹ lenB){longList = headB; shortList = headA;}while(gap--){longList = longList->next;}while(longList != shortList){longList = longList->next; shortList = shortList->next;}return longList;}

http://www.yidumall.com/news/68681.html

相关文章:

  • 模板网站可以优化吗域名排名查询
  • 政府网站集约化建设思路研究金花站长工具
  • 凡科自助建站网站百度推广的四种收费形式
  • 最便宜的外贸网站建设产品推广软文200字
  • 万网租空间 网站qq代刷网站推广免费
  • 品牌网站建设jincaoit今日头条十大热点
  • 电子东莞网站建设seo研究学院
  • 实验一 电子商务网站建设与维护网络推广的概念
  • 常熟网站建设哪家好友情链接平台站长资源
  • 兰州企业 网站建设如何写软文
  • 大学生做家教网站各大网站提交入口
  • html中文网页模板素材广州网站营销优化qq
  • 网站可能存在什么问题吗关键词排名手机优化软件
  • 温州网站建设推广网页制作培训教程
  • 网站制作详细教程电子商务网站开发
  • 网站开发工程师岗位职责说明书ttkefu在线客服系统官网
  • 怎么创建一个网站卖东西怎样在百度上注册自己的店铺
  • 沈阳男科医院哪家医院好重庆seo搜索引擎优化优与略
  • 建设银行信用卡官网站首页网络推广赚钱
  • 网站建设0基础学起seo优化公司
  • 做我网站网络营销是什么
  • 中国网站域名备案管理系统打开百度官网
  • 漳州做网站多少钱网络推广营销培训机构
  • 重庆市建设安全监督站的网站深圳关键词推广整站优化
  • 网站申请了如何上传到服务器河南推广网站
  • 网页搭建服务平台seo工具查询
  • 营销自动化平台搜索引擎关键词排名优化
  • 网站初期内容百度权重是什么意思
  • 怎么做网站能够增加人气推广普通话手抄报简单
  • 自己做的影视会员网站违法么济南网络seo公司