首先看一下题目,
嗯,删除节点,好,只要把下一个节点放在上一个节点的指针上就可以了!
好了,废话少说,开始了。
3、正文
好了,来一起看一下。
从头开始遍历每一个节点。
如果下一个节点的 val
和当前指针的 val
相同,那么,删除该节点。
那么什么时候结束呢?
两个条件:
- 第一,当前指针是最后一个节点了;
- 第二,当前节点是空的,即空链表;
4、代码
代码语言:javascript复制/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
auto cur=head;
while(cur&&cur->next){
if(cur->next->val==cur->val){
cur->next=cur->next->next;
}
else{
cur=cur->next;
}
}
return head;
}
};