删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1-》1-》2,返回1-》2.
给出的链表为1-》1-》2-》3-》3,返回1-》2-》3.
思路:遍历链表,记录上一个节点,如果当前节点跟前一个节点相同,则把这个节点从链表中摘除。
package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
*
* @param head ListNode类
* @return ListNode类
*/
func deleteDuplicates( head *ListNode ) *ListNode {
// write code here
if head == nil {
return head
}
node := head
for node.Next != nil {
if node.Val == node.Next.Val {
node.Next = node.Next.Next
} else {
node = node.Next
}
}
return head
}
该博客介绍了一个算法问题,即如何删除一个已排序的链表中的重复元素,以确保链表中的每个元素只出现一次。提供的解决方案是通过遍历链表,比较当前节点与下一个节点的值,若相等则跳过当前节点,否则移动到下一个节点。最后返回修改后的链表。
4291

被折叠的 条评论
为什么被折叠?



