您的位置:首页 > 健康 > 美食 > 网站设计技能培训_国际进出口贸易公司名字_软文推广例子_百度一下官网首页百度

网站设计技能培训_国际进出口贸易公司名字_软文推广例子_百度一下官网首页百度

2024/12/28 19:12:12 来源:https://blog.csdn.net/weixin_52297290/article/details/143938256  浏览:    关键词:网站设计技能培训_国际进出口贸易公司名字_软文推广例子_百度一下官网首页百度
网站设计技能培训_国际进出口贸易公司名字_软文推广例子_百度一下官网首页百度

题目

某教练同时带教两位学员,分别以链表 l1、l2 记录了两套核心肌群训练计划,节点值为训练项目编号。两套计划仅有前半部分热身项目不同,后续正式训练项目相同。请设计一个程序找出并返回第一个正式训练项目编号。如果两个链表不存在相交节点,返回 null 。

如下面的两个链表:
在这里插入图片描述

在节点 c1 开始相交。

输入说明:

intersectVal - 相交的起始节点的值。如果不存在相交节点,这一值为 0

l1 - 第一个训练计划链表

l2 - 第二个训练计划链表

skip1 - 在 l1 中(从头节点开始)跳到交叉节点的节点数

skip2 - 在 l2 中(从头节点开始)跳到交叉节点的节点数

程序将根据这些输入创建链式数据结构,并将两个头节点 head1 和 head2 传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被视作正确答案 。
示例1:
在这里插入图片描述示例2:
在这里插入图片描述注意:

如果两个链表没有交点,返回 null.
在返回结果后,两个链表仍须保持原有的结构。
可假定整个链表结构中没有循环。
程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。

代码

/**

  • Definition for singly-linked list.

  • public class ListNode {

  • int val;
    
  • ListNode next;
    
  • ListNode(int x) {
    
  •     val = x;
    
  •     next = null;
    
  • }
    
  • }
    */
    class Solution {
    ListNode getIntersectionNode(ListNode headA, ListNode headB) {
    if(headA == null || headB == null) return null;
    ListNode A = headA;
    ListNode B = headB;

     while(A != B){A = A == null ? headB : A.next;B = B == null ? headA : B.next;}return A;
    

    }
    }

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com