题解 | #删除链表峰值#

删除链表峰值

https://www.nowcoder.com/practice/30a06e4e4aa549198d85deef1bab6d25

  • 知识点:链表,链表节点的删除
  • 题面文字分析:题目要求是删除链表中值大于前后的节点,并且首尾节点可以不用删除。思路很清晰,从第二个节点遍历即可,并且判断当前节点的next节点不为空即可。只需两个变量,当前节点curr与前置节点prev,每次循环,将这两个变量向后移动即可
  • 本题使用编程语言:Java
  • 本题示例代码如下

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode deleteNodes (ListNode head) {
        // write code here
        ListNode prev = head;
        ListNode curr = head.next;
        while(curr != null) {
            if(curr.next != null) {
                // 判断当前节点是否大于前后节点
                if(curr.val > prev.val && curr.val > curr.next.val) {
                    // 将前节点的next指向当前节点的next将当前节点删除
                    prev.next = curr.next;
                }
            }
            // 重新赋值参数
            prev = curr;
            curr = curr.next;
        }
        return head;
    }
}

全部评论

相关推荐

06-23 18:25
沈阳大学 Java
HR已读不回,是我说话方式不对吗?
大白之主:你是串子吗? hr: 我们不招人了,把岗位挂着boss只是因为我闲得慌
点赞 评论 收藏
分享
能干的三文鱼刷了100道题:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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