题目:删除链表中的元素
问题描述:删除链表中等于给定值val
的所有节点。
思路:遍历整个链表,找到数据域等于val的元素,找到之后令它上一个元素的指针域指向它的下一个元素,从而使它与链表断开,即从链表中删除。
代码:
class Solution {
public:
/**
* @param head a ListNode
* @param val an integer
* @return a ListNode
*/
ListNode *removeElements(ListNode *head, int val) {
ListNode *dummy = new ListNode(0);
dummy->next = head;
head = dummy;
while (head->next != NULL) {
if (head->next->val == val) {
head->next = head->next->next;
}
else {
head = head->next;
}
}
return dummy->next;
}
};
感想:这是这个学期做的第一道编程题,从这道题里开始重温以前的知识,也用了很多新学的知识,算是一个新的开始。加油!