题解 | 从单向链表中删除指定值的节点 活动地址: 牛客春招刷题训练营 - 编程打卡活动

从单向链表中删除指定值的节点

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

#include <bits/stdc++.h>

using namespace std;

int a[1010];

int main() {

   int n,k,x,y,m=1;

   cin>>n>>x;

    a[m++]=x;    

    for(int i=1;i<n;i++){ // 后面应该是输入n-1个

        cin>>x>>y; // 在 y 后面插入 x 所以得先 把 y后面的元素后移 如果y后面有元素的话

        if(a[m-1]==y)// 如果此时最后一个元素是y

         a[m++]=x;

         else{// 否则 需要把y后面元素后裔一位

         int id=0;

            for(int j=m;;j--){

                if(a[j-1]==y){

                    id=j;

                    break;

                }

                a[j]=a[j-1];

            }

            a[id]=x;

            m++;

         }

    }

    int d;

    cin>>k;

    for(int i=1;i<m;i++){ // 从头遍历找到 k

        if(a[i]==k){

            d=i;

            break;

        }

    }

    for(int i=d;i<m;i++){ // 这里就需要前移了

        a[i]=a[i+1];

    }

    m--;

    for(int i=1;i<m;i++)cout<<a[i]<<" ";

}

// 64 位输出请用 printf("%lld")

活动地址: 牛客春招刷题训练营 - 编程打卡活动

全部评论

相关推荐

2025-12-17 11:44
吉首大学 平台产品
黑着眼圈看手机:pdd秋招笔试挂了,春招还行吗
点赞 评论 收藏
分享
Cons_W:我9本的,同样找不到。感觉是岗位太少的问题,可能12月份没多少岗位的。
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务