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;}
相关推荐
先做个垃圾出来………31 分钟前
偏移量解释
数据结构·算法
FanXing_zl36 分钟前
基于整数MCU的FOC控制定标策略深度解析
单片机·嵌入式硬件·mcu·算法·定点运算·q15
立志成为大牛的小牛1 小时前
数据结构——三十三、Dijkstra算法(王道408)
数据结构·笔记·学习·考研·算法·图论
憨憨崽&2 小时前
C语言、Java、Python 的选择与未来发展以及学习路线
java·c语言·python
地平线开发者2 小时前
mul 与 reduce_sum 的优化实例
算法·自动驾驶
坚持编程的菜鸟2 小时前
LeetCode每日一题——Pow(x, n)
c语言·算法·leetcode
csdn_aspnet2 小时前
分享MATLAB在数据分析与科学计算中的高效算法案例
算法·matlab·数据分析
白云千载尽2 小时前
moveit使用和机器人模型与状态--正向运动学和逆向运动学分析(四)
算法·机器人·逆运动学·moveit·正向运动学
我想吃余2 小时前
【0基础学算法】前缀和刷题日志(三):连续数组、矩阵区域和
算法·矩阵·哈希算法
小王C语言3 小时前
哈希表实现
数据结构·哈希算法·散列表