博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HappyLeetcode42:Intersection of Two Linked Lists
阅读量:5142 次
发布时间:2019-06-13

本文共 1985 字,大约阅读时间需要 6 分钟。

Write a program to find the node at which the intersection of two singly linked lists begins.

For example, the following two linked lists:

A:          a1 → a2                   ↘                     c1 → c2 → c3                   ↗            B:     b1 → b2 → b3

begin to intersect at node c1.

Notes:

  • If the two linked lists have no intersection at all, return null.
  • The linked lists must retain their original structure after the function returns.
  • You may assume there are no cycles anywhere in the entire linked structure.
  • Your code should preferably run in O(n) time and use only O(1) memory.

Credits:

Special thanks to for adding this problem and creating all test cases.

 

这道题除了阅读题目的困难较大之外, 其他的都还好。非常好做的一道题目。

代码如下:

//* 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) {        if (headA == NULL || headB == NULL)            return NULL;        int lengtha=1, lengthb=1;        ListNode *cora = headA, *corb = headB;        while (cora->next != NULL)        {            cora = cora->next;            lengtha++;        }        while (corb->next != NULL)        {            corb = corb->next;            lengthb++;        }        if (cora->val != corb->val)            return NULL;        int dif = lengtha - lengthb;        cora = headA, corb = headB;        if (dif >= 0)        {            while (dif)            {                dif--;                cora = cora->next;            }        }        else
 
 
 
 
{            while (dif)            {                dif++;                corb = corb->next;            }        }        while (cora != NULL)        {            if (cora == corb)                return cora;            else            {                cora = cora->next;                corb = corb->next;            }        }    }};

转载于:https://www.cnblogs.com/chengxuyuanxiaowang/p/4209448.html

你可能感兴趣的文章
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
springMVC相关—文件上传
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
OpenJudgeP1.10.08:病人排队__(刷题)_水题
查看>>
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>