zoukankan      html  css  js  c++  java
  • 链表之相交链表

     
    用集合,先把A链表存进集合,然后遍历B链表,每次判断节点是否在集合里,在的话就是第一个相交,用集合来判断链表公共元素问题太方便了
    class Solution {
    public:
        ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
            unordered_set<ListNode*> s;
            while(headA){
                s.insert(headA);
                headA = headA->next;
            }
            while(headB){
                if(s.count(headB)){
                    return headB;
                }
                headB = headB->next;
            }
            return NULL;
        }
    };
     
    双指针数学构思,拼接,AB,BA,
     1 class Solution {
     2 public:
     3     ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
     4         if (headA == nullptr || headB == nullptr) {
     5             return nullptr;
     6         }
     7         ListNode *pA = headA, *pB = headB;
     8         while (pA != pB) {
     9             pA = pA == nullptr ? headB : pA->next;
    10             pB = pB == nullptr ? headA : pB->next;
    11         }
    12         return pA;
    13     }
    14 };
    15 
    16 作者:LeetCode-Solution
    17 链接:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/solution/xiang-jiao-lian-biao-by-leetcode-solutio-a8jn/
    18 来源:力扣(LeetCode)
    19 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    View Code
  • 相关阅读:
    jquery属性
    jquery选择器
    Django的模型
    win7安装RabbitMQ
    阿里云RDS备份的tar格式包恢复到本地自建数据库
    正确使用 Volatile 变量
    深入分析Volatile的实现原理
    volatile和synchronized的区别
    全面理解Java内存模型
    深入理解Feign之源码解析
  • 原文地址:https://www.cnblogs.com/hcl6/p/15799463.html
Copyright © 2011-2022 走看看