美文网首页
C++算法之链表重合的代码

C++算法之链表重合的代码

作者: xintiantian | 来源:发表于2019-01-19 14:25 被阅读0次

下面的资料是关于C++算法之链表重合的代码。

    while(pLink){ 

        if(pLink == pNode) 

            return 1; 

        pLink = pLink->next; 

    } 

    return 0; 

    if(NULL == pLinkOne || NULL == pLinkTwo) 

        return FALSE; 

    pHead = pLinkTwo; 

    while(pHead){ 

        if(find_node_in_link(pLinkOne, pHead)) 

            return TRUE; 

        pHead = pHead->next; 

    } 

    return FALSE; 

另外一种方法就是计数的方法,既然链表在某处重合,那么此点访问的次数就是2,所以我们可以依次把两个链表遍历一下,最后查看有没有节点的count为2即可。

typedef struct _LINK_NODE 

    int data; 

    int count; 

}LINK_NODE; 

    assert(NULL != pNode); 

    while(pNode){ 

        pNode->count ++; 

        pNode = pNode->next; 

    } 

从计数的方法,我们可以发现如果两个链表是重合的,那么他们的最后一个节点必然是相同的,所以只要判断最后一个节点是否相同即可。

    assert(NULL != pLinkOne && NULL != pLinkTwo); 

    while(pLinkOne->next) pLinkOne = pLinkOne->next; 

    while(pLinkTwo->next) pLinkTwo = pLinkTwo->next; 

    return (pLinkOne == pLinkTwo) ? TRUE : FALSE; 

总结:1)链表重合的题目虽然简单,但是从不同的角度可以有不同的答案;2)本题目来自《编程之美》,如果对解法还有兴趣的朋友可以参考《编程之美》。

相关文章

  • C++算法之链表重合的代码

    下面的资料是关于C++算法之链表重合的代码。 { while(pLink){ if(pLink == ...

  • c++ 实现队列

    相关资料: 用C++实现一个队列 数据结构代码实现之队列的链表实现(C/C++)

  • Swap Nodes in Pairs

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Swap Nodes in ...

  • Remove Nth Node From End of List

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Remove Nth Nod...

  • Merge k Sorted Lists

    标签: C++ 算法 LeetCode 链表 每日算法——leetcode系列 问题 Merge Two Sort...

  • C++算法之通用数据结构的代码

    把开发过程经常用的代码记录起来,下面代码内容是关于C++算法之通用数据结构的代码。 class calculate...

  • C++算法之图的结构的代码

    下面资料是关于C++算法之图的结构的代码,应该能对码农有帮助。 typedef struct _LINE { ...

  • 多边形相交判断算法

    一、规则 判断两多边形是否相交,排除边边重合、以及断点与边重合的情况 二、示意图 三、算法代码(js)

  • C++算法之合并排序法的代码

    如下代码内容是关于C++算法之合并排序法的代码,应该是对大伙有些用。 void merge_sort(int ar...

  • 栈的算法

    这一部分的算法和链表联系的比较紧密,只要链表弄明白了,相信栈的算法也不会太难理解的。。。 栈算法的代码如下:

网友评论

      本文标题:C++算法之链表重合的代码

      本文链接:https://www.haomeiwen.com/subject/nlfzdqtx.html