博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--Remove Duplicates from Sorted List
阅读量:5044 次
发布时间:2019-06-12

本文共 1196 字,大约阅读时间需要 3 分钟。

 

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.

 

LeetCode上很简单的一道题,处理链表将链表中重复的数值去除只保留一个。大致流程如下:

1.先判断链表是否为空或只有一个结点,是的话直接返回,否则进行一般处理。

2.head为前一个结点,nextNode为后head指向的后一个节点,nextNode不为空时说明没有到达链表尾部,进入while循环。

3.注意head.val==nextNode.val时,考虑超过两个重复值的情况,将head的下一节点指向nextNode的下一个节点,去除nextNode,head结点不变。

 head.val!=nextNode.val时,head后移指向nextNode。

   最后将nextNode赋值为next指向的下一节点,继续循环比较。

 


 

/** * 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) {        ListNode result = head;        if(head==null||head.next==null)            return head;        else{            ListNode nextNode = head.next;            while(nextNode!=null){            if(head.val == nextNode.val)                head.next = nextNode.next;            else                head = nextNode;            nextNode = head.next;            }        }        return result;    }}

 

转载于:https://www.cnblogs.com/zhoujunfu/p/4039582.html

你可能感兴趣的文章