题解 | #删除有序链表中重复的元素-II#

删除有序链表中重复的元素-II

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

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 || head.Next == nil {
		return head
	}
	res := &ListNode{Val: -1}
	res.Next = head
	tmp := res
	for tmp.Next != nil && tmp.Next.Next != nil {
		//剔除相同节点
		if tmp.Next.Val == tmp.Next.Next.Val {
			sameVal := tmp.Next.Val
			//下个节点、下下个节点相同
			for tmp.Next != nil && tmp.Next.Val == sameVal {
				//剔除下个节点,链接下下个节点
				tmp.Next = tmp.Next.Next
			}
		} else {
			tmp = tmp.Next
		}
	}
	return res.Next
}

全部评论

相关推荐

给🐭🐭个面试机会...:我擦seed✌🏻
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务