题解 | #删除链表峰值#
删除链表峰值
https://www.nowcoder.com/practice/30a06e4e4aa549198d85deef1bab6d25
package main
// import "fmt"
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
func deleteNodes(head *ListNode) *ListNode {
// write code here
pre := head
cur := head.Next
for cur.Next != nil {
if cur.Val > cur.Next.Val && cur.Val > pre.Val {
delete(head, cur.Val)
}
pre = cur
cur = cur.Next
}
return head
}
func delete(head *ListNode, target int) {
tmp := head
pre := &ListNode{Next: tmp}
for tmp != nil {
if tmp.Val == target {
if tmp.Next == nil {
tmp = nil
break
}
pre.Next = tmp.Next
tmp = nil
break
}
pre = pre.Next
tmp = tmp.Next
}
}
查看23道真题和解析