PTA 6-11 操作指针删除三个已串接结点中的第二个结点

系统已经实现用malloc生成3个结点并串接成功,现在需要实现换一个函数destroy要删除第二个节点后,第一个结点和第三个结点串接,返回值为第一个结点地址,注意删除的结点要free释放空间。

函数接口定义:

复制代码
ptr destroy(ptr p1);

返回值为第一个结点的地址。

结构定义:

复制代码
typedef struct node//结构体定义 
{ 
int data;//存储数据 
struct node *next;//指向下一个结点的指针
 }
snode,*ptr;//定义别名

裁判测试程序样例:

复制代码
#include <stdio.h> 
#include<stdlib.h> 
typedef struct node//结构体定义 
{ 
int data; 
struct node *next; 
}snode,*ptr; 
ptr destroy (ptr p); 

void traversal(ptr p); 
int main() 
{ 
int x1,x2,x3; 
ptr p1,p; 
scanf("%d%d%d", &x1,&x2,&x3); 
p1=createthree(x1,x2,x3); 
p=destroy (p1); 
traversal(p1); 
return 0; } 

void traversal(ptr p) 
{ 
while(p!=NULL) { 
printf("%d ",p->data); 
p=p->next; } } 
/* 请在这里填写答案 */

输入样例:

复制代码
5 1 6

输出样例:

复制代码
5 6 

代码实现:

复制代码
ptr destroy(ptr p1)
{
    ptr wyf;
    wyf=(ptr)malloc(sizeof(snode));
    wyf=p1->next;
    p1->next=p1->next->next;
    free(wyf);
    return p1;}
相关推荐
Aaron158820 分钟前
通用的通感控算存一体化平台设计方案
linux·人工智能·算法·fpga开发·硬件工程·射频工程·基带工程
dvvvvvw30 分钟前
展开式求和.c
c语言
就是ping不通的蛋黄派30 分钟前
数据结构与算法—线性表(C++描述)
数据结构·c++
_w_z_j_35 分钟前
拼三角(枚举)
算法
hweiyu001 小时前
数据结构和算法分类
数据结构·算法·分类
M K Q1 小时前
2025.9 GESP三级 日历制作
算法
AI小云1 小时前
【数据操作与可视化】Pandas数据处理-Series数据结构
开发语言·数据结构·python·numpy·pandas
x***J3481 小时前
算法竞赛训练方法
算法
前端小L1 小时前
图论专题(十六):“依赖”的死结——用拓扑排序攻克「课程表」
数据结构·算法·深度优先·图论·宽度优先
前端小L1 小时前
图论专题(十三):“边界”的救赎——逆向思维解救「被围绕的区域」
数据结构·算法·深度优先·图论