zoukankan      html  css  js  c++  java
  • PAT A1032 Sharing [静态链表]

    题目描述

    链接
    给定两个链表首地址,以及各个结点,求两个链表的首个公共结点的地址,没有,则返回-1

    关键点

    • 用静态链表时注意该怎么写,怎么遍历,按照题意改造结构体,比如这里加了一个flag变量
    • 遍历第一个链表标记每个结点为true,然后遍历第二个,遇到第一个flag为true的就是我们找的结点
    • 注意scanf的时候%d%c%d是不行的,因为会把空格读入,此时!!记住写成原来的输入格式%d %c %d,也就是加空格,保持一模一样
    #include<bits/stdc++.h>
    using namespace std;
    
    const int maxn = 1e6+10;
    struct Node{
        char data;
        int next;
        bool flag;
    }node[maxn];
    
    int main(){
        int pa,pb,n;
        scanf("%d%d%d",&pa,&pb,&n);
        int add, nxt;
        char ch;
        for(int i=0;i<n;i++){
            scanf("%d %c %d",&add, &ch, &nxt);
            node[add].data = ch;
            node[add].next = nxt;
        }
        while(pa != -1){
            node[pa].flag = true;
            pa = node[pa].next;
        }
        while(pb != -1){
            if(node[pb].flag){
                printf("%05d
    ",pb);
                return 0;
            }
            pb = node[pb].next;
        }
        printf("-1
    ");
    }
    
    
  • 相关阅读:
    bzoj 4260REBXOR
    bzoj 1009GT考试
    cf 621E. Wet Shark and Blocks
    cf 507E. Breaking Good
    cf 766#
    bzoj 3732Network
    bzoj 4300绝世好题
    bzoj 4345[POI2016]Korale
    bzoj 4236JOIOJI
    bzoj 4237稻草人
  • 原文地址:https://www.cnblogs.com/doragd/p/11262366.html
Copyright © 2011-2022 走看看