题目
存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
输入:head = [1,1,2]
输出:[1,2]
输入:head = [1,1,2,3,3]
输出:[1,2,3]
leetcode链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/
思考
算是第一次做链表的题,没做之前一直不知道用java如何来做链表题。所以这次的题算是开卷做的。从整个题目上来看,就是leetcode自己构造了一个链表的每个节点的类。然后返回的结果就是这个类的对象。还是蛮有意思的。
代码
/**
* 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) {
ListNode cur = head;
if(head==null){
return head;
}
while(cur.next != null){
if(cur.val == cur.next.val){
cur.next = cur.next.next;
}else{
cur = cur.next;
}
}
return head;
}
}