奥利给:力扣160:相交链表

这一道题的思路:
1、如国两个链表有一个为NULL,那就直接返回NULL;
2、如果两个链表相交,那么搜索的长度=短链表的长度;
3、题目默认不存在val相等,相等,突然不相等的情况;

遇到的问题:测试用例,返回1,预期是8

为什么?
因为题目想要的是节点一样而不是节点值一样,对于两个值为1的节点,他们的前驱是不一样的,因此,第一个相等的节点是值为8的节点

解决的方法:
把判断值相等改为判断链表相等;

/** * 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) 
    {
   
        //如果A或者B为NULL,直接返回NULL
        if(headA==NULL||headB==NULL)
        return NULL;

        //判断AB的长度,搜索长度=短链表长度
        ListNode *tmpA=headA;
        ListNode *tmpB=headB;
        int lenA=0;
        int lenB=0;
        while(tmpA!=NULL)
        {
   
            lenA++;
            tmpA=tmpA->next;
        }
        while(tmpB!=NULL)
        {
   
            lenB++;
            tmpB=tmpB->next;
        }
        tmpA=headA;
        tmpB=headB;
        if(lenA>lenB)
        {
   
            int i=lenA-lenB;
            while(i)
            {
   
                tmpA=tmpA->next;
                i--;
            }
        }
        else 
        if(lenA<lenB)
        {
   
            int i=lenB-lenA;
            while(i)
            {
   
                tmpB=tmpB->next;
                i--;
            }
        }

        //
        while(tmpA!=NULL)
        {
   
            if(tmpA==tmpB)
            return tmpA;
            else 
            tmpA=tmpA->next;
            tmpB=tmpB->next;
        }
        return NULL;
    }
};


杂谈:
今年的这个寒假特别长,努力一年考上了研究生,心态慢慢的发生了变化,曾经以为自己要多么努力的做实验,写论文,要继续大学期间的苦读;如今,看清了眼前的道路,毕业也就是一个普普通通的程序员,我是到了今天才知道,原来我这个也算是转行,突然就明白了软件工程与通信工程的质的区别。

今天刷知乎,看了一个回答,25岁坚持做什么,可以让5年后的自己受益:坚持做以时间为成本的事情。

5年做到一个领域的顶尖,让30岁的自己为25岁的自己骄傲自豪,所幸今年虚岁23,时间还大把的有啊,这个疫情期间,多刷刷代码,目前数据结构也就比较熟悉链表,定个小目标,先把链表的简单题目做完

刷题总结类 文章被收录于专栏

这里记录一些刷题时候的总结思考

全部评论

相关推荐

05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务