其他分享
首页 > 其他分享> > 剑指Offer-第12天 双指针(简单)

剑指Offer-第12天 双指针(简单)

作者:互联网

第一题

题目链接:https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/

个人题解:创建一个虚拟头节点,遍历,如果碰到小的元素接上去即可。

代码:

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        auto dummy=new ListNode(-1),tail=dummy;
        while(l1 && l2){
            if(l1->val<l2->val){
                tail=tail->next=l1;
                l1=l1->next;
            }
            else{
                tail=tail->next=l2;
                l2=l2->next;
            }
        }
        if(l1) tail->next=l1;
        if(l2) tail->next=l2;

        return dummy->next;
    }
};

运行截图:

image

第二题

题目链接:https://leetcode.cn/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/

个人题解:遍历,所有走过的路程总和是一样的

代码:

class Solution {
public:
    ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
        auto a=headA,b=headB;
        while(a!=b)
        {
            if(!a) a=headB;
            else a=a->next;

            if(!b) b=headA;
            else b=b->next;
        }
        return a;
    }
};

运行截图:

image

标签:12,ListNode,Offer,next,tail,l2,headB,l1,指针
来源: https://www.cnblogs.com/cytcnblogs/p/16271986.html