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

网站开发工作方案python做电子商务网站

网站开发工作方案,python做电子商务网站,医生做学分在哪个网站,模板之家html5一、题目要求 题目:给定两条单链表 headA、headB,找出它们相交的起始节点(节点对象相同而非数值相等)。若无交点返回 null。 限制:链表无环;函数返回后链表结构不能被破坏。 图示两个链表在节点 c1 开始相…

一、题目要求

题目:给定两条单链表 headAheadB,找出它们相交的起始节点(节点对象相同而非数值相等)。若无交点返回 null
限制:链表无环;函数返回后链表结构不能被破坏。

图示两个链表在节点 c1 开始相交:

题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构 。

示例 1:

示例 2:

示例 3:

二、解法 1 —— “先求长度差 + 对齐再同步”(时间 O(m+n),空间 O(1))

1. 思路

  1. 先各自遍历一次求出长度 lenAlenB
  2. 计算差值 d = |lenA - lenB|
  3. 让较长链先走 d 步,剩余部分两链长度一致。
  4. 两指针同时前进,第一次相遇即交点;若最后都为 null 则无交点。

2. C++代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {ListNode* curA = headA;ListNode* curB = headB;int lenA = 0;int lenB = 0;int chazhi;while(curA){curA=curA->next;lenA++;}while(curB){curB=curB->next;lenB++;}chazhi = abs(lenA-lenB);curA = headA;curB = headB;if (lenA>lenB){for(int i =0;i<chazhi;i++){curA=curA->next;}while(curA){if(curA==curB){return curA;}curA=curA->next;curB=curB->next;}}else{for(int i =0;i<chazhi;i++){curB=curB->next;}while(curA){if(curA==curB){return curA;}curA=curA->next;curB=curB->next;}}return NULL;}
};

三、解法 2 —— “双指针互跳”(一次扫描更简洁)

1. 关键思想

  • 指针 pA 从 A 链头走到尾后 跳到 B 链头
  • 指针 pB 从 B 链头走到尾后 跳到 A 链头
  • 若存在交点,它们在第 lenA + lenB - k 步会同时到达交点;
  • 若无交点,两指针最终同时成为 nullptr,循环结束。

整体只走两条链各一遍,总步数 lenA + lenB

 2. C++代码

class Solution {
public:ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) {// 若有任何一条为空,必无交点if (!headA || !headB) return nullptr;ListNode* pA = headA;   // 指针 AListNode* pB = headB;   // 指针 B/* 只要不相等就一直走:*  - pA 走完链 A 就跳到链 B 的头*  - pB 走完链 B 就跳到链 A 的头* 最多 lenA+lenB 步,两指针必同时为交点或同时为 nullptr*/while (pA != pB) {pA = (pA ? pA->next : headB);  // 三元运算避免空指针访问pB = (pB ? pB->next : headA);}return pA;   // 返回交点或 nullptr}
};

四、两种解法对比

指标解法 1:先算长度差解法 2:双指针互跳
时间复杂度O(m + n)O(m + n)
额外空间O(1)O(1)
代码行数略长(需两次遍历 + 对齐)极简
直观难度★★★★★(第一次见需要理解“互跳”)
常用场景任何面试都能过高频高赞写法,面试官更青睐


五、重要知识点

知识点速记
比较节点地址交点要判断 指针是否相同,不能只比较 val
虚拟头 vs 不需要本题不必修改原链结构,通常不加 dummy;若要改链可加 dummy
时间下界至少 O(m+n),因为每节点都需被访问
空间下界题面要求 O(1),因此不能用 set、vector 存节点
互跳原理走完自己链就走对方链,总步数相等,长短差抵消
无交点情况双指针最终一起到 nullptr,返回 nullptr

六、面试官常追问

  1. 带环链表场景如何处理?
    先用 Floyd 判环:

    • 若两链一无环一有环 → 一定不相交;
    • 若都无环:按本题思路;
    • 若都同环:分“交点在环前”与“在环内”两种讨论。
  2. 能否用递归?
    理论可行但会消耗 O(m+n) 递归栈,不推荐。

  3. 如果链表非常长(百万级),但内存紧张,使用哪种算法?
    互跳法依旧 O(1) 空间,非常适合。


文章转载自:

http://GsC1wNym.fbdkb.cn
http://CbDlA4DZ.fbdkb.cn
http://JD4LyiQi.fbdkb.cn
http://lJBrQjHL.fbdkb.cn
http://tmwgMLNe.fbdkb.cn
http://V0xCBg7k.fbdkb.cn
http://qFNjwgNZ.fbdkb.cn
http://ZlBFlZvN.fbdkb.cn
http://34N43njy.fbdkb.cn
http://h8vA1ggR.fbdkb.cn
http://pO1lAQpv.fbdkb.cn
http://I26qP2ZX.fbdkb.cn
http://nKyvUcrR.fbdkb.cn
http://wdbEwDpw.fbdkb.cn
http://UijJdbHq.fbdkb.cn
http://8jGPhxHk.fbdkb.cn
http://66UfuyiV.fbdkb.cn
http://JKHGpyfg.fbdkb.cn
http://DzS7ayTK.fbdkb.cn
http://I2rEef1I.fbdkb.cn
http://TUD0H5nV.fbdkb.cn
http://FjSmhYEi.fbdkb.cn
http://5xck5C7M.fbdkb.cn
http://MnpjyMh5.fbdkb.cn
http://6L9GRBfD.fbdkb.cn
http://5zZG1aFs.fbdkb.cn
http://u3lN8IaK.fbdkb.cn
http://W2Bklfbf.fbdkb.cn
http://SLaR45Cx.fbdkb.cn
http://wjER8NkO.fbdkb.cn
http://www.dtcms.com/wzjs/684908.html

相关文章:

  • 导航滑动整屏网站cn网站怎么做
  • 响应式网站 宽度辽宁省建设厅网站升级
  • 网站实现中英文网站logo教程
  • 域名服务器ip地址关键词优化推广排名
  • 刷题网站建设手机app开发自学教程
  • 找大学生做网站要多少钱建一个自己的网站有什么用
  • 那个网站是做房产中介的杭州网站公司哪家服务好
  • 淘宝 做网站空间 条件订阅号做流量 那些电影如何链接网站
  • 网站建设系统优势建设网站的建设费用包括什么科目
  • 网站后台用户名太原网站空间
  • 网站建设实训报告范文网站域名登记证明
  • 官方购物网站正品是in the wordpress
  • 网络书城网站开发 需求分析wordpress所有图片都裁剪
  • 学院网站建设新闻简报wordpress网站使用教程
  • 领优惠券的网站是怎么做的用户注册网站开发
  • 百度推广进入后是别的网站 说是服务器问题网站分为四个步骤开发建设
  • 襄阳大型网站建设网站建设岗位需要解决的问题
  • 霸州做网站shijuewang网站建设源代码共享
  • 用网站做自我介绍自己网站建设方案样本
  • 做网站是如何赚钱的莱芜网站优化是什么
  • 网站办事服务建设情况网站开发国际化
  • 深圳免费网站建设分销商城系统定制开发
  • 百度提交网站淘宝上可以做网站吗
  • 大型网站seo课程电子商务都包括什么
  • 青岛手机端建站模板如何免费制作网站
  • flash网站首页上海集团网站建设公司好
  • 首页网站关键词优化教程做网站的qq兼职
  • 网站的后期运营及维护费用建站的流程是什么需要什么步骤
  • 做关于什么样的网站好跨境电商网站开发公司
  • 做侵权视频网站iis 制作搜索网站