码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode160(C语言)

时间:2021-06-04 19:20:50      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:方案   c语言   nbsp   inter   相交   ||   col   开始   return   

/*
    一、比较容易理解的方法
        分别把两条链走完,计算两条链的长度,差值就是一条链比另外一条链的长的长度;
        然后将将较长的链先走到剩下的和另一条一样长时,两条链开始同步一起走,相等处即为相交的起点,若走到空没有,则说明没有交点。
    二、用哈希表存存储一条链
        遍历另一条链,在哈希表中找到的第一个结点即为交点的开始,若哈希表中没有任何一个结点,则没有交点。
    三、双向指针
        因为两条链之和相等,所以当从起点开始,走完后到另外一条链的起点开始,那么当走到相同结点时,则为相交的起点。 
*/
// 这里是最佳方案 
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
    if(headA == NULL || headB == NULL) return NULL;
    struct ListNode *pa = headA;
    struct ListNode *pb = headB;
    while(pa != pb)
    {
        if(pa == NULL) pa = headB;
        if(pb == NULL) pb = headA;
        pa = pa->next;
        pb = pb->next;
    }
    return headA;
} 

 

LeetCode160(C语言)

标签:方案   c语言   nbsp   inter   相交   ||   col   开始   return   

原文地址:https://www.cnblogs.com/xie213/p/14848398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!