- 一、题目
- 二、解题思路
- 三、解题代码
一、题目
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given1->1->2, return1->2.
Given1->1->2->3->3, return1->2->3.
给定一个排序链表,删除所有重复的元素每个元素只留下一个。
二、解题思路
遍历之,遇到当前节点和下一节点的值相同时,删除下一节点,并将当前节点next值指向下一个节点的next, 当前节点首先保持不变,直到相邻节点的值不等时才移动到下一节点。
三、解题代码
/*** Definition for ListNode* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val = x;* next = null;* }* }*/public class Solution {/*** @param ListNode head is the head of the linked list* @return: ListNode head of linked list*/public static ListNode deleteDuplicates(ListNode head) {ListNode curr = head;while (curr != null) {while (curr.next != null && curr.val == curr.next.val) {curr.next = curr.next.next;}curr = curr.next;}return head;}}
