题目要求:

从有序链表中删除重复的数字,并且返回删除后的头结点
例如输入链表为1->1->2,返回1->2

这题和leetcode26相似,只是数据结构从数组变成了链表

/**
 * @author rale
 *
 * Given a sorted linked list, delete all duplicates such that each element appear only once.
 * For example,
 * Given 1->1->2, return 1->2.
 * Given 1->1->2->3->3, return 1->2->3.
 */
public class RemoveDuplicatesfromSortedList {
     public ListNode deleteDuplicates(ListNode head) {
         if(head==null){
             return head;
         }
         ListNode result = new ListNode(-1);
         result.next = head;
         while(head.next!=null){
             if(head.next.val==head.val){
                 head.next = head.next.next;
             }else{
                 head = head.next;
             }
             
         }
         return result.next;
     }
     
     public class ListNode {
         int val;
         ListNode next;
         ListNode(int x) { val = x; }
     }
}

若还有更好的思路,请多多指教!

clipboard.png
想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号!将会不定期的发放福利哦~


raledong
2.7k 声望2k 粉丝

心怀远方,负重前行