数据结构之链表:打印两个链表的公共值

原创 2016年08月28日 20:53:32
题目:

现有两个升序链表,且链表中均无重复元素。请设计一个高效的算法,打印两个链表的公共值部分。

给定两个链表的头指针headAheadB,请返回一个vector,元素为两个链表的公共部分。请保证返回数组的升序。两个链表的元素个数均小于等于500。保证一定有公共值

测试样例:
{1,2,3,4,5,6,7},{2,4,6,8,10}
返回:[2.4.6]
 
 
 
/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};*/
class Common {
public:
    vector<int> findCommonParts(ListNode* headA, ListNode* headB) {
        // write code here
        vector<int>out;
        auto pt1=headA;
        auto pt2=headB;
           //循环:pt1和pt2谁小谁移动一个单位,相等则输出且一起移动一个单位   循环边界:一直移到其中一个为null
        while(pt1!=NULL&&pt2!=NULL){
            if(pt1->val<pt2->val){
               pt1=pt1->next;
            }
            else if(pt1->val==pt2->val){
                out.push_back(pt1->val);
                pt1=pt1->next;
                pt2=pt2->next;
            }
            else{
                pt2=pt2->next;
            }
        }
        return out;
          
    }
 
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

打印两个链表的公共值练习题

题目传送门:http://www.nowcoder.com/courses/1/5/6  购买视频请输入优惠码  AdVHxHT 可优惠10元 现有两个升序链表,且链表中均无重复元素。请设计...

算法基础总结

最近主要在看算法与数据结构相关的知识点,现在把一些需要看或者已经看了的算法总结一下,列一个大纲,慢慢消化。 一、排序 对于每个排序算法需要思考的问题如下: 1、每个算法的思想是什么?  2、每个算法的...

链表12: 打印两个链表的公共值

链表12: 打印两个链表的公共值

打印两个链表的公共值

现有两个升序链表,且链表中均无重复元素。请设计一个高效的算法,打印两个链表的公共值部分。 给定两个链表的头指针headA和headB,请返回一个vector,元素为两个链表的公共部分。请保证返回...

数据结构与算法分析笔记与总结(java实现)--链表12:打印两个升序链表公共值问题

数据结构与算法分析笔记与总结(java实现)--链表12:打印两个升序链表公共值问题...

左程云_算法与数据结构 — 链表问题 — 01打印两个有序链表的公共部分

问题描述给定两个有序链表的头指针head1,head2,打印两个链表的公共部分思路分析注意是有序的链表 如果head1的值小于head2,那么将head1向后移 如果head1的值大于head2,那么...

【数据结构】单链表—寻找两个相交链表中第一个公共结点 — 蛮力法 / 栈 / 指针先走

题目:输入两个链表,找到它们的第一个公共结点。思路一:蛮力法 在第一个链表上顺序遍历每一个结点,每遍历一个节点在第二个链表顺序遍历每一个结点,如果第二个链表上有一个结点和第一个链表上一样,说明两个链...

将两个升序排列的链表合并后升序排序打印.

今天早上为了一道简单的链表排序题在度娘上面疯狂搜寻. 才发现,像我这种小白,根本不能参透. 人家的代码不是逼格太高就是太复杂. 于是写下这个代码、供大家参考,大家一起探讨,共同进步,从无到有,加油. ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构之链表:打印两个链表的公共值
举报原因:
原因补充:

(最多只允许输入30个字)