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

棋牌类网站开发销售案例网站

棋牌类网站开发,销售案例网站,万网 网站模板,购物网页html代码目录 一、找出并返回链表的中间结点 二、输出链表中倒数第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.yayakq.cn/news/868482/

相关文章:

  • c 网站开发技术做那种英文网站有流量
  • 做一个团购网站的成本桂林模板网站建设
  • 今年的公需课在哪个网站做设计网页报价
  • 品牌制作网站微信小程序api文档
  • 网站建设佰首选金手指十互联网公司有哪些部门
  • 邯郸创建网站要多少钱wordpress大气企业主题
  • 东莞网站建设的方案网站设计网站源码
  • 多伦网站建设杭州网论坛
  • 吐鲁番建设局网站企业级网络管理
  • 网站建设空间主机的选择祁县建设局网站
  • 福州手机网站建设手机网站开发要多久
  • 网站还是app企业网站策划方案网站建设方案
  • 山东公司网站建设3d效果图怎么制作用什么软件
  • 个人网站备案怎么写企查查怎么精准找客户
  • 纺织品做外贸一般在哪个网站上关于公司网站建设的请示
  • 互动网门户网站建设国内四大门户网站
  • 西安直播室网站建设网站建设自己可以建网站吗
  • 网站优化与seo重庆网站建站推广
  • 余姚网站建设设计软件前端开发主要做什么
  • 超级营销型网站模板建立网站的优势
  • 企业网站建设方案流程温州网站建设wzwmwl
  • 建设网站的工作职责新乡高端网站建设
  • 天津哪家网站设计公司好珠海企业落户申请网站
  • 网站的动画效果代码大全湖州住房和城乡建设部网站
  • 佛山智能模板建站好看的网站首页设计
  • 贵州省建设执业资格促进会网站乐陵网站优化
  • 网站建设策划书模板下载公司网站布局
  • 地方生活门户信息网站源码wordpress中如何添加面包屑
  • 四川建设行政主管部门官方网站企业网站建设图
  • 常见的网络营销有哪些seo平台怎么样