LeetCode Remove Duplicates from Sorted List II

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving onlydistinctnumbers from the original list.

For example,Given1->2->3->3->4->4->5, return1->2->5.Given1->1->1->2->3, return2->3.

题意:删除重复的所的节点。

思路:如果当前的节点的值=下一个节点的值的话就一直删掉,注意细节,,每次我们都只是确定了一个节点,所以pre.next每次都要置null。

/** * Definition for singly-linked list. * public class ListNode { *int val; *ListNode next; *ListNode(int x) { *val = x; *next = null; *} * } */public class Solution {public ListNode deleteDuplicates(ListNode head) {if (head == null) return head;ListNode cur = head;ListNode root = new ListNode(Integer.MAX_VALUE);ListNode pre = root;while (cur != null && cur.next != null) {if (cur.val == cur.next.val) {int v = cur.val;while (cur.val == v) {cur = cur.next;if (cur == null) return root.next;}} else {pre.next = cur;pre = pre.next;cur = cur.next;pre.next = null;}}pre.next = cur;return root.next;}}

去了不同的地方,看了不同的风景,知道了不同的事,

LeetCode Remove Duplicates from Sorted List II

相关文章:

你感兴趣的文章:

标签云: