83. Remove Duplicates from Sorted List
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2 Output: 1->2
Example 2:
Input: 1->1->2->3->3 Output: 1->2->3
以为简单结果一下还没做出来,逻辑太差
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode deleteDuplicates(ListNode head) { ListNode cur = head; while(cur!= null && cur.next != null){//细节,必须先判断cur if(cur.val == cur.next.val){ cur.next = cur.next.next; } else{ cur = cur.next; } } return head; } }
class Solution { public ListNode deleteDuplicates(ListNode head) { if(head == null) return null; for(ListNode prev = head, cur = prev.next; cur != null; cur = prev.next){ if(prev.val == cur.val){ prev.next = cur.next; } else prev = cur; } return head; } }
另一种迭代,更好懂。cur一直等于prev的next,用prev来判断后面的是否有重复。