[C++]Remove Linked List Elements 删除链表中的元素
2015-08-27 21:23
507 查看
leetcode 原题链接:https://leetcode.com/problems/remove-linked-list-elements/
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
简要分析:该题就是把与给定的val值相同的元素从链表中删除
需要注意的是,删除的点在链表头与表身需要分开处理。
实现代码:
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
简要分析:该题就是把与给定的val值相同的元素从链表中删除
需要注意的是,删除的点在链表头与表身需要分开处理。
实现代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* removeElements(ListNode* head, int val) { /*if (head == NULL) return NULL;*/ while (head != NULL && head->val == val) { ListNode *temp = head; head = head->next; /*delete temp; temp = NULL;*/ } if (head == NULL) { return NULL; } else { ListNode *pre = head; ListNode *cur = head; while (cur != NULL) { if (cur->val == val) { ListNode *temp = cur; pre->next = cur->next; cur = cur->next; /*delete temp; temp = NULL;*/ } else { pre = cur; cur = cur->next; } } } return head; } };
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- [C/C++]反转链表
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 动易2006序列号破解算法公布
- 文件遍历排序函数
- C#实现基于链表的内存记事本实例
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- Ruby实现的矩阵连乘算法
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- C#插入法排序算法实例分析
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例