从单链表中输出指定值的节点
来源:互联网 发布:2016网络最新最火的词 编辑:程序博客网 时间:2024/05/18 02:59
描述
输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。
链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
详细描述:
本题为考察链表的插入和删除知识。
链表的值不能重复
构造过程(x->y表示x插在y的后面),例如
1 -> 2
3 -> 2
5 -> 1
4 -> 5
7 -> 2
最后的链表的顺序为 2 7 3 1 5 4
删除 结点 2
则结果为 7 3 1 5 4
知识点 链表,指针,结构体
运行时间限制 10M
内存限制 128
输入
1 输入链表结点个数
2 输入头结点的值
3 按照格式插入各个结点
4 输入要删除的结点的值
输出
输出删除结点后的序列
样例输入 5 2 3 2 4 3 5 2 1 4 3
样例输出 2 5 4 1
解答如下:
//SqLink.cpp
#include <stdio.h>#include <stdlib.h>struct ListNode{ int m_nKey; ListNode* m_pNext;};int insert(struct ListNode* head,int data[]){ struct ListNode *p=head,*q; while(p!=NULL){ if (p->m_nKey == data[1]) { q=(struct ListNode*)malloc(sizeof(struct ListNode)); q->m_nKey = data[0]; q->m_pNext = p->m_pNext; p->m_pNext = q; return 0; } p = p->m_pNext; } return 1;}//删除元素struct ListNode* del(struct ListNode *head,int datadet){ struct ListNode *p=head,*q=NULL; while(p!=NULL){ //删除第一个结点 if (p==head && p->m_nKey==datadet) { if(p->m_pNext==NULL) return NULL; head = p->m_pNext; free(p); return head; } else if (p->m_nKey == datadet) { q->m_pNext = p->m_pNext; free(p); return head; } q=p; p = p->m_pNext; } return NULL;}void main(){ //int n; int data[2],num=0,shu=0,num2=0; struct ListNode *LsNode = (struct ListNode*)malloc(sizeof(struct ListNode)); scanf("%d%d",&shu,&num2); LsNode->m_nKey=num2; LsNode->m_pNext=NULL; int j=0; for (j=0;j<shu-1;j++) { scanf("%d %d",&data[0],&data[1]); insert(LsNode,data); } scanf("%d",&num); LsNode=del(LsNode,num); while(LsNode!=NULL){ printf("%d ",LsNode->m_nKey); LsNode = LsNode->m_pNext; } printf("\n");}
效果如下:
1 0
- 从单链表中输出指定值的节点
- 华为机试-从单链表中删除指定值的节点
- 从单向链表中删除指定值的节点
- 华为OJ:从单向链表中删除指定值的节点
- 从单向链表中删除指定值的节点
- 华为oj 从单向链表中删除指定值的节点
- [编程题]从单向链表中删除指定值的节点
- 华为OJ从单向链表中删除指定值的节点
- 24.从单向链表中删除指定值的节点
- 从单向链表中删除指定值的节点(格式控制真坑,末尾要打印空格,样例输出有错误)
- 在单链表中删除指定值的节点
- 在单链表中删除指定值的节点
- 单向链表(四) 修改指定节点的数据值、逆序输出
- Java XML使用Dom4J从指定节点下寻找指定不重复名称的单节点
- (算法)输出单链表的倒数第k个节点,删除特点的节点和从链表尾一次输出节点值
- c实现对给定线性链表head按节点值非递减次序输出所有节点,并把刚输出的节点从链表中删除
- 华为OJ(从单向链表中删除指定值的节点)
- XML工具代码:SAX从String字符串XML内获取指定节点或属性的值
- lintcode-堆化-130
- 黑马程序员 ----C语言 结构体
- 信息熵与信息增益
- LeetCode Length of Last Word
- Leetcode: Move Zeroes
- 从单链表中输出指定值的节点
- 【编程题】-C++实现:判断字符串在末尾加一个字符,能否构成回文串
- 一个小公司老板的日常管理,希望能让创业的朋友学到东西
- 网络编程入门(1
- lintcode-旋转图像-161
- Java命令行执行那些事
- 黑马程序员---C语言 内存分区
- 详解Objective-C的meta-class ,runtime创建类,添加实例变量
- Fiddler手机抓包