题解 | #删除链表峰值#

删除链表峰值

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设置为下一个节点

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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