给出链表 1->2->3->3->4->5->3
, 和 val = 3
, 你需要返回删除3之后的链表:1->2->4->5
。
入门难度,注意一些边缘事件的解决:
/**
* Definition of singly-linked-list:
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->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;
while(head->val==val){
head=head->next;
if(head==NULL) return head;
}
ListNode *m_node=head;
while(m_node->next!=NULL){
if(m_node->next->val==val){
m_node->next=m_node->next->next;
}else{
m_node=m_node->next;
}
}
return head;
}
};