链表面试题(十三)---求两个都不带环的链表相交的结点

来源:互联网 发布:手机淘宝5.9.0版本 编辑:程序博客网 时间:2024/06/03 15:59

一、结构体定义

typedef int DataType;typedef struct ListNode//定义结点{    DataType data;    struct ListNode* next;}ListNode,*PListNode;typedef struct  PList//定义一个成员是指向结点的指针的结构体{    PListNode PHead;}PList,*PList;

二、分析
这里写图片描述
三、函数实现
//上图方法一的实现

//13.求两个都不带环的链表相交的结点;如果不相交,返回NULL;---O(N²)PListNode GetCrossNode(PListNode PHead1,PListNode PHead2){    PListNode cur1=PHead1;    PListNode cur2=PHead2;    while (cur1)    {        while (cur1!=cur2&&cur2)        {            cur2=cur2->next;        }        if (cur1==cur2)        {            return cur2;        }        cur1=cur1->next;        cur2=PHead2;    }    return NULL;}
阅读全文
0 0
原创粉丝点击