zoukankan      html  css  js  c++  java
  • 转:判断两个单向链表是否相交,并找到两个单向链表的第一个相交节点

    源地址:http://hi.baidu.com/gloria_kevin/item/4cc3c9244dffffcda4275a38

    判断两个单向链表是否相交,并找到两个单向链表的第一个相交节点

    程序思路清晰,简明扼要,转~~

    http://songxuejing52580.blog.163.com/blog/static/13647652009112093554152/

    ***************************************************************************************************

    如果两个单向链表相交,一定是形成Y字形,而不会是X字形。基于这个想法,可以判断两链表是否相交。

    NODE* FindNode(NODE* pHead1, NODE* pHead2)

    {

        NODE* p1 = pHead1;

        NODE* p2 = pHead2;

        int i = 1, j = 1, k = 0, f = 0;

        if(pHead2 == NULL || pHead2 == NULL)

        {

            return NULL;

        }

        while(p1->next != NULL)

        {

            p1 = p1->next;

            i++;

        }

        while(p2->next != NULL)

        {

            p2 = p2->next;

            j++;

        }

        if(p1 != p2)

        {

            return NULL;        //如果尾节点不同,直接返回NULL

        }

        else                   //否则寻找第一个相同的节点

        {

            p1 = pHead1;                // 1

            p2 = pHead2;                // 2

            f = fabs(i, j);   //计算两条链表长度的差

            if(i > j)         //如果第一个链表比第二个长,第一个链表先向前移动f步

            {

                for(k=0; k<f; k++)

                {

                    p1 = p1->next;

                }

                while(p1 != p2)

                {

                    p1 = p1->next;

                    p2 = p2->next;

                }

                return p1;

            }

            else

            {

                for(k=0; k<f; k++)

                {

                    p2 = p2->next;

                }

                while(p1 != p2)

                {

                    p1 = p1->next;

                    p2 = p2->next;

                }

                return p1;

            }

        }

    }

  • 相关阅读:
    git 账号密码
    sql server 备份
    计算经纬度的两点之间的距离
    redis 安装
    webapi 可空参数
    Asp.Net MVC4 使用Unity 实现依赖注入
    sublime主题推荐
    分解质数因子
    如何在sublime+chrome中调试php代码?
    php的mysql语句里变量加不加单引号问题
  • 原文地址:https://www.cnblogs.com/xuhj001/p/3389152.html
Copyright © 2011-2022 走看看