go数组去除重复_让我们一起啃算法----删除排序链表中的重复元素
生活随笔
收集整理的這篇文章主要介紹了
go数组去除重复_让我们一起啃算法----删除排序链表中的重复元素
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
刪除排序鏈表中的重復(fù)元素(Remove-Duplicates-From-Sorted-List)
題干:
給定一個排序鏈表,刪除所有重復(fù)的元素,使得每個元素只出現(xiàn)一次。示例 1:
輸入: 1->1->2
輸出: 1->2
示例 2:
輸入: 1->1->2->3->3
 輸出: 1->2->3
來源:力扣
還記得刪除排序數(shù)組的重復(fù)項是如何解決的嘛,戳這里,思路都差不多。
其實力扣有很多相似的題目,只不過承載形式不一樣而已。比如上面的刪除重復(fù)項,先前是承載在數(shù)組上,這題則承載在鏈表上。解題思路
初始化指針 current,使其指向鏈表頭。
比較 current 的 val 值 與 current.next 的 val 值。如果 current.val 與 current.next.val 相等,則將 current.next 指向 current.next.next,相當(dāng)于將原本 current.next 拋棄。如果不想等,則 current 指向 current.next。重復(fù)上面的操作。
流程圖如下:
代碼實現(xiàn)
GO語言實現(xiàn)
func deleteDuplicates(head *ListNode) *ListNode {current := head// 當(dāng)前節(jié)點為空 或者 當(dāng)前節(jié)點的下一個節(jié)點為空 則認(rèn)為循環(huán)結(jié)束for current != nil && current.Next != nil {// 相等,則跳過下一個節(jié)點if current.Val == current.Next.Val {current.Next = current.Next.Next} else {// 不想等,則移動到下一個節(jié)點current = current.Next}}// 返回return head }總結(jié)
每天進步一點點,加油!
總結(jié)
以上是生活随笔為你收集整理的go数组去除重复_让我们一起啃算法----删除排序链表中的重复元素的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql里guest用户_MySQL用
- 下一篇: linux下打开配置文件命令_Linux