** 删除有序链表中重复的元素-I**
图解:
链接
思路:
1.判断一下链表是否为空,如果是空,就不需要去重,直接返回null
2.当当前的节点和下一个节点不为null的时候
3.判断一下如果当前的节点等于下一个节点,就让当前节点指向下下个节点
4.否则就直接指向下一个节点
代码:
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public ListNode deleteDuplicates (ListNode head) {
//判断一下如果输入的链表为空,那么就不需要进行去重操作,直接返回null
if(head==null){
return null;
}
ListNode cur=head;
//当当前的节点不为null并且cur.next不为null,则继续循环
//如果发现当前的节点的值等于下一个节点的值,那么就将当前节点指向下下个节点,否则就直接指向下一个节点
while(cur!=null&&cur.next!=null){
if(cur.val==cur.next.val){
cur.next=cur.next.next;
}else{
cur=cur.next;
}
}
return head;
}
}