首页 > 其他分享 >02.07. 链表相交

02.07. 链表相交

时间:2023-02-22 13:35:19浏览次数:40  
标签:ListNode 02.07 nullptr 相交 链表 curB headB curA return

 1 //暴力法
 2     ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) {
 3         if (headA == nullptr || headB == nullptr) return nullptr;
 4         ListNode* p, * q;
 5         p = headA;
 6         q = headB;
 7         while (p != nullptr)
 8         {
 9             q = headB;
10             while (q != nullptr)
11             {
12                 if (p == q)
13                     return p;
14                 q = q->next;
15             }
16             p = p->next;
17         }
18         if (p == nullptr || q == nullptr) return nullptr;
19         else return p;
20     };
21     //差值法
22     ListNode* getIntersectionNode1(ListNode* headA, ListNode* headB) {
23         if (headA == nullptr || headB == nullptr) return nullptr;
24         ListNode* curA = headA;
25         ListNode* curB = headB;
26         int lenA = 0, lenB = 0;
27         while (curA != NULL) { // 求链表A的长度
28             lenA++;
29             curA = curA->next;
30         }
31         while (curB != NULL) { // 求链表B的长度
32             lenB++;
33             curB = curB->next;
34         }
35         if (lenB > lenA)
36         {
37             swap(lenB, lenA);
38             swap(curA, curB);
39         }
40         int gap = lenA - lenB;
41         while (gap--)
42         {
43             curA = curA->next;
44         }
45         while (curA != NULL) {
46             if (curA == curB) {
47                 return curA;
48             }
49             curA = curA->next;
50             curB = curB->next;
51         }
52         return NULL;
53     };

 

标签:ListNode,02.07,nullptr,相交,链表,curB,headB,curA,return
From: https://www.cnblogs.com/lihaoxiang/p/17144009.html

相关文章

  • 力扣days02 链表
    力扣203.移除链表元素力扣707.设计链表已经覆盖了链表的常见操作,是练习链表操作非常好的一道题目;力扣206.反转链表再定义一个新的链表,实现链表元素的反转,是......
  • Java链表
    链表顺序表性质链表不同于顺序表,顺序表底层采用数组作为存储容器,需要分配一块连续且完整的内存空间进行使用,而链表则不需要,它通过一个指针来连接各个分散的结点,形成了......
  • leetcode 141. 环形链表
    哈希classSolution{public:boolhasCycle(ListNode*head){map<ListNode*,int>mp;while(head){if(mp[head]==1){......
  • leetcode 382. 链表随机节点
    从头开始计数第i个点选择的概率是只需要区[0,i-1]的随机数,如果,取到了0,就更新返回值,否则不更新classSolution{public:/**@paramheadThelinkedlist'shead.......
  • 【算法训练营day53】LeetCode1143. 最长公共子序列 LeetCode1035. 不相交的线 LeetCod
    LeetCode1143.最长公共子序列题目链接:1143.最长公共子序列独上高楼,望尽天涯路和之前那道题思路又不太一样了,第一次接触还是挺难想出来的。慕然回首,灯火阑珊处首先是......
  • 19. 删除链表的倒数第 N 个结点
    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*......
  • [bzoj 1471] 不相交路径 (容斥原理)
    题目描述给出一个结点的有向无环简单图。给出个不同的点,,,,定义不相交路径为两条路径,两条路径的起点分别为和,对应的两条路径的终点为和,要求满足这两条路径不相交,即两条路径上没......
  • 代码随想录-链表基础
    链表链表基础单链表代码随想录(programmercarl.com)packagecom.lee;/***@authorJun*@date2023/2/1721:53*@descriptionListNode*/publicclass......
  • 【数组与链表算法】矩阵算法在程序中常见的简单应用 | C++
    第二十三章矩阵算法:::hljs-center目录第二十三章矩阵算法●前言●矩阵算法与深度学习●一、矩阵相加●二、矩阵相乘●三、矩阵转置●四、稀疏矩阵●......
  • 算法题:链表反转
    node节点:publicclassNode{Nodenext;Integervalue;publicNode(Integervalue){this.value=value;}publicNodeaddNode(In......