剑指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;
}
};
运行截图:
第二题
题目链接: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;
}
};
运行截图:
标签:12,ListNode,Offer,next,tail,l2,headB,l1,指针 来源: https://www.cnblogs.com/cytcnblogs/p/16271986.html