lintcode-452-删除链表中的元素
2017-08-20 12:46
441 查看
452-删除链表中的元素
删除链表中等于给定值val的所有节点。
样例
给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。标签
链表思路
删除结点,使用 3 个指针即可,分别指向待删节点,待删节点前节点,待删节点后节点code
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: /* * @param head: a ListNode * @param val: An integer * @return: a ListNode */ ListNode * removeElements(ListNode * head, int val) { // write your code here if (head == NULL) { return head; } ListNode * newHead = new ListNode(0); newHead->next = head; ListNode * temp = head, *p = newHead, *q = temp->next; while (temp != NULL && temp->next != NULL) { if (temp->val == val) { p->next = q; delete temp; } else { p = p->next; } temp = temp->next; if (q->next != NULL) { q = q->next; } } if (temp->next == NULL && temp->val == val) { p->next = NULL; } return newHead->next; } };
相关文章推荐
- LintCode入门练习——452. 删除链表中的元素
- 【LintCode-452】删除链表中的元素(Java实现)
- LintCode_452_删除链表中的元素
- LintCode入门练习——452. 删除链表中的元素
- Lintcode 入门-452. 删除链表中的元素
- LintCode 452 删除链表中的元素
- LintCode_452_删除链表中的元素
- 【LintCode 入门】452. 删除链表中的元素
- LintCode之452 删除链表中的元素
- [Lintcode] #452 删除链表中的元素
- <LeetCode> 题452:删除链表中的元素
- LintCode:删除链表中的元素452
- [LintCode]452.删除链表中的元素
- [Lintcode]删除链表中元素
- LintCode 第452题 删除链表中的元素
- LintCode 删除排序链表中的重复元素
- LintCode 第452题 删除链表中的元素
- 【Lintcode】删除链表中的元素
- Lintcode删除链表中的元素
- [lintcode]-链表 删除链表中的元素