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;

            }

        }

    }

  • 相关阅读:
    什么是API
    Maxiee的Vim入门日记(4)——安装windows下的Cscope
    将字符串变成大写----C++实现
    POJ 3254 炮兵阵地(状态压缩DP)
    UIKit和Core Graphics绘图(三)——绘制虚线,椭圆以及饼图
    CRC 模式及实现
    [HDU 1317]XYZZY[SPFA变形][最长路]
    poj 2155 Matrix
    [置顶] Application,Session,Cookie之Application对象
    [Todo] Java及C++ Exception整理
  • 原文地址:https://www.cnblogs.com/xuhj001/p/3389152.html
Copyright © 2011-2022 走看看