zoukankan      html  css  js  c++  java
  • LeetCode 203. Remove Linked List Elements

    原题链接:https://leetcode.com/problems/remove-linked-list-elements/

    题目:

    Remove all elements from a linked list of integers that have value val.

    Example
    Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
    Return: 1 --> 2 --> 3 --> 4 --> 5

    题解:

    建一个dunmy,dunmy.next = head,为了防止head.val 等于要被去掉的value时删掉head不方便表示。

    Time Complexity: O(n), n是list长度. Space: O(1).

    AC Java:

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 public class Solution {
    10     public ListNode removeElements(ListNode head, int val) {
    11         if(head == null){
    12             return head;
    13         }
    14         
    15         ListNode dummy = new ListNode(0);
    16         dummy.next = head;
    17         ListNode cur = dummy;
    18         while(cur.next != null){
    19             if(cur.next.val == val){
    20                 cur.next = cur.next.next;
    21             }else{
    22                 cur = cur.next;
    23             }
    24         }
    25         return dummy.next;
    26     }
    27 }

    Recursion Method, stop condition 是 head == null, return head. 

    Time Complexity: O(n), n 是list长度. Space: O(n), stack space.

    AC Java:

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 public class Solution {
    10     public ListNode removeElements(ListNode head, int val) {
    11         if(head == null){
    12             return head;
    13         }
    14         head.next = removeElements(head.next, val);
    15         return head.val == val ? head.next : head;
    16     }
    17 }

    类似Delete Node in a Linked List.

  • 相关阅读:
    大数运算
    混合背包问题
    多重背包问题(二进制优化)
    完全背包
    01背包问题
    树状数组
    构建之法阅读笔记04
    第一次冲刺个人总结07
    构建之法阅读笔记03
    第一次冲刺个人总结06
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/4825014.html
Copyright © 2011-2022 走看看