zoukankan      html  css  js  c++  java
  • 输入两个链表,找出它们的第一个公共节点

    题目:输入两个链表,找出它们的第一个公共节点。链表的定义如下:

    #include <iostream>
    
    using namespace std;
    
    struct ListNode
    {
        int val;
        ListNode *next;
        ListNode(int x):val(x),next(NULL){};
    };
    
    int len(ListNode *phead)
    {
        ListNode *p=phead;
        int num=0;
        while(p!=NULL)
        {
            num++;
            p=p->next;
        }
        return num;
    }
    
    ListNode* Firstcommonnode(ListNode *phead1,ListNode *phead2)
    {
        int num1,num2;
        ListNode *p1=phead1;
        ListNode *p2=phead2;
        num1=len(phead1);
        num2=len(phead2);
        //cout<<num1<<num2;
        while(num1!=num2)
        {
            if(num1>num2)
            {
                p1=p1->next;
                num1--;
            }
            else if(num1<num2)
            {
                p2=p2->next;
                num2--;
            }
        }
        //cout<<num1<<num2;
        while((p1->val!=p2->val)&&(p1!=NULL)&&(p2!=NULL))
        {
            p1=p1->next;
            p2=p2->next;
        }
        ListNode *common=p1;
        return common;
    
    }
    
    
    int main()
    {
        ListNode *head1=new ListNode(-5);
        ListNode *p1=head1;
        for(int i=1;i<=2;i++)
        {
            ListNode *newNode1=new ListNode(i);
            p1->next=newNode1;
            p1=newNode1;
        }
        ListNode *head2=new ListNode(-4);
        ListNode *p2=head2;
        for(int i=-3;i<=2;i++)
        {
            ListNode *newNode2=new ListNode(i);
            p2->next=newNode2;
            p2=newNode2;
        }
        ListNode *First=Firstcommonnode(head1,head2);
        cout<<First->val;
        return 0;
    }
  • 相关阅读:
    Java学习:Scanner类
    Java学习:Object类
    js 方法
    ToDictionary
    goto
    删除多列同时重复数据
    linq中使用case when
    sql 学习笔记
    VS2012发布网站详细步骤
    由于权限不足而无法读取配置文件出现的HTTP 500.19解决办法
  • 原文地址:https://www.cnblogs.com/home123/p/6782256.html
Copyright © 2011-2022 走看看