[LeetCode]Remove Linked List Elements
2015-10-15 17:42
316 查看
题目:将给定的值从单链表中删除
分析:注意将删除的节点释放空间
C语言参考代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeElements(struct ListNode* head, int val) {
if(head==NULL)
return NULL;
struct ListNode* p,*q,*result;
p=head;
while(p&&p->val==val)
{
q=p;
p=p->next;
free(q);
}
result=p;
while(p)
{
if(p->next&&p->next->val==val)
{
q=p->next;
p->next=q->next;
free(q);
continue;
}
p=p->next;
}
return result;
}
分析:注意将删除的节点释放空间
C语言参考代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* removeElements(struct ListNode* head, int val) {
if(head==NULL)
return NULL;
struct ListNode* p,*q,*result;
p=head;
while(p&&p->val==val)
{
q=p;
p=p->next;
free(q);
}
result=p;
while(p)
{
if(p->next&&p->next->val==val)
{
q=p->next;
p->next=q->next;
free(q);
continue;
}
p=p->next;
}
return result;
}
相关文章推荐
- 在android的service中启动一个通知,点击通知无法启动activity,报一个SecurityException异常
- undefined symbols for architecture armv7
- Android Studio代码着色插件
- Binding数据校验
- TSF(Text Service Framework)简介
- 算法复习之:最大子串和问题
- Linux的join命令
- 8.Contains Duplicate
- C++自定义函数
- C#获取变量名的扩展方法
- Android 启动白屏或者黑屏闪现解决
- C#之 HashSet(临时笔记,未参考资料,请慎重)
- DOM对象和jQuery对象之间的相互转换
- IAudioCaptureClient interface
- 基于directshow技术实现的录音程序
- Amoeba for mysql安装配置
- MMS Host is unreachable
- Android笔记(三十七) 如何停止AsyncTask?
- CentOS 7下编译FreeSWITCH 1.6
- Spring+SpringMVC+mybatis+easyui整合实例-----spring mvc整合及mybatis事务部分