题解 | #删除链表峰值#
删除链表峰值
https://www.nowcoder.com/practice/30a06e4e4aa549198d85deef1bab6d25
package main
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
func check(pre *ListNode,now *ListNode) bool{
if pre == nil || now.Next == nil{
return false
}
if pre.Val < now.Val && now.Val > now.Next.Val{
return true
}
return false
}
func deleteNodes( head *ListNode ) *ListNode {
var pre *ListNode
node := head
pre = nil
for node != nil{
if check(pre,node){
pre.Next = node.Next
}
pre = node
node = node.Next
}
return head
}
非常简单的送分题,思路就是很简单的一个检查函数,查看前节点和后节点的值是否满足条件,满足就返回true,否则就false
然后一个for循环里,遍历检查所有节点,如果满足条件,就把前节点的next设置为下一个节点