leetcode-83:删除排序链表中的重复元素

题目描述

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

示例 1:

输入: 1->1->2
输出: 1->2
示例 2:

输入: 1->1->2->3->3
输出: 1->2->3

解题思路

  • 遍历链表,如果下一个节点与该节点值相同,将该节点的next指向下下个
  • 要注意判断下一个节点是否为空节点
  • 注意循环遍历当前节点,后边相同的删除干净再下一步

代码实现

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteDuplicates(head *ListNode) *ListNode {
	if head == nil {
		return head
	}

	cur := head
	for cur != nil && cur.Next != nil {
		for cur.Next != nil && cur.Val == cur.Next.Val {
			cur.Next = cur.Next.Next
		}
		cur = cur.Next
	}
	return head
}

你可能感兴趣的:(算法,#,算法:链表,leetcode,链表,数据结构,排序链表重复元素,删除链表元素)