zoukankan      html  css  js  c++  java
  • 每日一练leetcode

    删除链表的节点

    给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

    返回删除后的链表的头节点。

    注意:此题对比原题有改动

    示例 1:

    输入: head = [4,5,1,9], val = 5
    输出: [4,1,9]
    解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
    示例 2:

    输入: head = [4,5,1,9], val = 1
    输出: [4,5,9]
    解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

    来源:力扣(LeetCode)

    说明:

    • 题目保证链表中节点的值互不相同
    • 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点
    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
        public ListNode deleteNode(ListNode head, int val) {
            ListNode q = head;
            ListNode p = q;
            if(head == null)
                return null;
            if(head.val == val)
                head = head.next;
            while(p != null){
                if(p.val == val){
                    q.next = p.next;
                }
                q = p;
                p = p.next;
            }
            return head;
    
        }
    }
    执行用时: 0 ms
    内存消耗: 37.8 MB
  • 相关阅读:
    Balanced Binary Tree
    Swap Nodes in Pairs
    Reverse Nodes in k-Group
    Reverse Linked List II
    Remove Nth Node From End of List
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Partition List
    Merge Two Sorted Lists
    【Yii2.0】1.2 Apache检查配置文件语法
  • 原文地址:https://www.cnblogs.com/nenu/p/15064595.html
Copyright © 2011-2022 走看看