zoukankan      html  css  js  c++  java
  • 两个链表的第一个公共结点

    题目:输入两个链表,找出它们的第一个公共结点。

    这道题可以画一个图,就会很清楚。解决方法是让两个指针从两个链表的头结点开始走,当指针走到空的时候,让它再从另一个链表的头结点开始走。当两个指针相遇的位置就是公共结点,两个指针相遇就是它们相等。如果不存在公共结点,则两个结点又都走向空,那这个时候则返回空。

    c++代码如下:

     1 class Solution {
     2 public:
     3     ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) {
     4         auto p = pHead1, q = pHead2;
     5         while(p != q){
     6             if(!p) p = pHead2;
     7             else p = p->next;
     8             if(!q) q = pHead1;
     9             else q = q->next;
    10         }
    11         return p;
    12     }
    13 };
  • 相关阅读:
    外观模式
    建造者模式
    原型模式
    工厂模式
    单例模式
    设计模式入门
    SpringBoot-SpringMVC开发总结
    SpringBoot日志
    IDEA Basics
    Kafka基础学习
  • 原文地址:https://www.cnblogs.com/hellosnow/p/12082989.html
Copyright © 2011-2022 走看看