5_6打印两个链表的公共值

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

给定两个链表的头指针headA和headB,请返回一个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> result;
        while(headA && headB){
            if(headA->val == headB->val){
                result.push_back(headA->val);
                headA = headA->next;
                headB = headB->next;
            }else if(headA->val < headB->val){
                headA = headA->next;
            }else{
                headB = headB->next;
            }
        }
        return result;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,002评论 25 709
  • 定义block 返回类型 (^block名称)(参数) = ^(){block内容}; 调用block block...
    走道牙的人阅读 326评论 0 0
  • 在南浔的两天是我最轻松的两天,习惯了城市中的快节奏,来到这慢悠悠的小镇真的就不想走了。 与平江路,山塘街,周庄,乌...
    12bf83e6c532阅读 322评论 0 0
  • 晚饭过后,张平收拾碗筷后便夺门而出,无视屋子里的无限神像,走在阳关大道上。晚霞初散,道路两旁的合欢树渐渐拉长了影子...
    大why阅读 488评论 0 8