求两个升序链表公共元素

思路很简单,两个指针分别指向两个链表头,哪个元素小就后移,相等就记录。某一个为空,就退出。

    vector<int> findCommonParts(ListNode* headA, ListNode* headB) {
        vector<int> v;
        ListNode *p1=headA,*p2=headB;
        while(p1 && p2){
            if(p1->val<p2->val){
                p1=p1->next;
            }else if(p1->val>p2->val){
                p2=p2->next;
            }else{
                v.push_back(p1->val);
                p1=p1->next;
                p2=p2->next;
            }
        }
        return v;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //leetcode中还有花样链表题,这里几个例子,冰山一角 求单链表中结点的个数----时间复杂度O(n)这是最...
    暗黑破坏球嘿哈阅读 1,573评论 0 6
  • 大学的时候不好好学习,老师在讲台上讲课,自己在以为老师看不到的座位看小说,现在用到了老师讲的知识,只能自己看书查资...
    和珏猫阅读 1,495评论 1 3
  • 1.线性表的定义 线性表:零个或多个数据元素的有限序列序列:也就是说元素之间是有顺序的,若元素存在多个,则第一个元...
    e40c669177be阅读 2,144评论 6 15
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 3,533评论 3 44
  • 1、HSQLDB是一个轻量级的纯JAVA语言开发(需要Java环境支持)的开放源代码的关系数据库系统,因为它的轻量...
    嘿嘿_小于同学阅读 1,917评论 2 1