力扣题--删除排序链表中的重复元素

删除排序链表中的重复元素

题目

  • 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。、

操作代码

public class Solution {    
	public ListNode DeleteDuplicates(ListNode head) 
	{        
		if (head == null || head.next == null)            
		{                
			return head;            
		}
            	ListNode l1 = head;            
            	ListNode l2 = head.next;
            	while (l2 != null)            
            	{                
            		if (l2.val != l1.val)                
            		{                   
            			l1.next = l2;                   
            			l1 = l2;                
            		}
                	l2 = l2.next;            
                }            
                l1.next = null;
            	return head;        
            	}
    }

力扣题--删除排序链表中的重复元素_第1张图片

解题思路

定义两个新的头结点,一个前一个后,如果前后相等就将前一个继续移动,如果不相等就把前一个结点后面的链表都移动到后一个结点的后面,然后再把后一个结点往后移动到前一个结点的位置,再把前一个结点继续向前移动。

题目链接:

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/

你可能感兴趣的:(力扣题--删除排序链表中的重复元素)