JAVA解法
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
// 头节点为空则为空链表
if (head == null) {
return head;
}
// 当前节点
ListNode cur = head;
// 存在节点值相同则跳过
while (cur.next != null) {
if (cur.val == cur.next.val) {
cur.next = cur.next.next;
} else {
cur = cur.next;
}
}
return head;
}
}
leetcode原题: 83. 删除排序链表中的重复元素
解法分析
先对传进来的链表头节点判空,为空则直接返回头节点,非空则对当前节点与下一个节点进行值的判断,若不相等则把当前节点变成下一个节点,若相等则跳过。
评论区