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

如何自己建个人网站电商设计行业前景

如何自己建个人网站,电商设计行业前景,十大平面设计培训,济宁北湖建设集团网站题目 给一个长度为n链表&#xff0c;若其中包含环&#xff0c;请找出该链表的环的入口结点&#xff0c;否则&#xff0c;返回null。 数据范围&#xff1a;1<结点值<10000 要求&#xff1a;空间复杂度O(1)&#xff0c;时间复杂度O(n) 例如&#xff0c;输入{1,2},{3,4,5…

题目


给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。

数据范围:1<=结点值<=10000

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

例如,输入{1,2},{3,4,5}时,对应的环形链表如下图所示:

可以看到环的入口结点的结点值为3,所以返回结点值为3的结点。

输入描述:

输入分为2段,第一段是入环前的链表部分,第二段是链表环的部分,后台会根据第二段是否为空将这两段组装成一个无环或者有环单链表。

返回值描述:

返回链表的环的入口结点即可,我们后台程序会打印这个结点对应的结点值;若没有,则返回对应编程语言的空结点即可。

示例1

输入:
{1,2},{3,4,5}
返回值:
3
说明:
返回环形链表入口结点,我们后台程序会打印该环形链表入口结点对应的结点值,即3 

示例2

输入:
{1},{}
返回值:
"null"
说明:
没有环,返回对应编程语言的空结点,后台程序会打印"null"

示例3

输入:
{},{2}
返回值:
2
说明:
环的部分只有一个结点,所以返回该环形链表入口结点,后台程序打印该结点对应的结点值,即2

思路


首先,题目中给的链表并不一定是有环的,所以需要先判断链表是否有环。可以在通过快慢指针的方式来判断,如果有环,则可以计算出环节点的个数。

然后,定义两个指针初始化指向头节点,第一个指针先前进环节点个数,之后两个节点同时前进,到节点值相等的节点就是环的入口节点。

本题还可以使用哈希表unordered_set来记录经过的节点来解决,但是这个方法的空间复杂度时O(n)。

另外,我的解法写的比较复杂,主要是为了理顺思路。使用快慢指针可以用更简洁的代码解决。

解答代码


/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}
};
*/
class Solution {
public:ListNode* EntryNodeOfLoop(ListNode* pHead) {if (pHead == nullptr || pHead->next == nullptr) {return nullptr;}// 获取到环节点的个数int loop_node_num = GetLoopNodeNum(pHead);if (loop_node_num == 0) {// 链表中没有环return nullptr;}ListNode* pNode1 = pHead;ListNode* pNode2 = pHead;// 第一个节点先前进loop_node_num步for (int i = 0; i < loop_node_num; i++) {pNode1 = pNode1->next;}// 两个节点同时前进while (pNode1->val != pNode2->val) {pNode1 = pNode1->next;pNode2 = pNode2->next;}// 相等的点就是环的入口return pNode1;  }int GetLoopNodeNum(ListNode* pHead) {int loop_node_num = 0;// 定义快慢指针ListNode* fast = pHead->next;ListNode* slow = pHead;// 判断是否有环bool is_loop = false;while (fast != nullptr) {if (fast->val == slow->val) {is_loop = true;break;} else {if (fast->next != nullptr) {fast = fast->next->next;slow = slow->next;} else {break;}}}// 有环,则步进慢指针计算环的节点数if (is_loop) {int val = slow->val;loop_node_num = 1; // 加上自身while (val != slow->next->val) {++loop_node_num;slow = slow->next;}}return loop_node_num;}
};
http://www.yayakq.cn/news/664522/

相关文章:

  • 优化推广网站推荐新闻做的差的网站
  • 网站关键词优化方案线上商城系统
  • 广州企业建站公司网站交换链接怎么做
  • 无锡网站建设设计公司怎么做兼职类网站
  • wordpress一键安装网站路径优化
  • 提供网站建设价格做网站改字号代码
  • 可以做点赞的网站赚钱家居网站建设如何
  • 国际新闻最新消息今天10条宁波seo推广怎么做
  • 手机企业管理app软件咖啡seo是什么意思
  • 项城网站建设给别人建设网站怎么收费
  • 怎么注销自己做的网站wordpress 表单校验
  • nas有域名了怎么做网站网站重定向代码
  • 广西网站建设seo优化网站 子域名
  • 企业网站的高跳出率应该如何解决wordpress评论去掉网址
  • 网站风格优势做电脑系统的网站好
  • 网站上传源码郑州做网站优化
  • 网站更换logonas可做网站服务器吗
  • 中咨城建设计南京网站做网站群
  • deals网站建设谁用fun域名做网站了
  • 上海网络哪家比较好seo管理工具
  • 网站怎么查哪家公司做的网站姐姐做床戏网站
  • php cms网站国外最好的免费建站
  • 千博企业网站管理系统完整版 2014适合迷茫年轻人的工作
  • 公司建设官方网站萧江网站建设
  • 使用wordpress的网站wordpress文章分类页面
  • 网站搭建平台爱站网官网关键词
  • 上海网站建设找哪家公司wordpress修改个人头像
  • 网站域名备案在阿里云怎么做实体店营销策划公司
  • 山东省建设注册执业中心网站网站建设的目的及定位功能
  • 中国空间站研究项目住房城乡建设行业从业人员