LeetCode 203. Remove Linked List Elements

原创 2018年04月17日 20:37:36

问题描述

  • 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

问题分析

  • 利用dummy 节点来避免可能删除头结点这种特殊操作
  • 利用递归来避免可能删除头结点这种特殊操作

代码实现

  • dummy 节点法
    public ListNode removeElements(ListNode head, int val) {
        if (head == null) {
            return head;
        }
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode preNode = dummy;
        ListNode curNode = head;
        while (curNode != null) {
            ListNode nextNode = curNode.next;
            if (curNode.val == val) {
                preNode.next = nextNode;
            }else {
                preNode = curNode;
            }
            curNode = nextNode;
        }
        return dummy.next;
    }
  • 递归
    public ListNode removeElements(ListNode head, int val) {
        if (head == null) {
            return head;
        }
        ListNode resList = removeElements(head.next, val);
        if (head.val == val) {
            return resList;
        }else {
            head.next = resList;
            return head;
        }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zjxxyz123/article/details/79980398

Redis入门到精通视频教程

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。
  • 2018年02月03日 16:04

leetcode 203: Remove Linked List Elements

Remove Linked List Elements Total Accepted: 2921 Total Submissions: 10427 Remove all elements ...
  • xudli
  • xudli
  • 2015-04-25 06:47:30
  • 4904

203. Remove Linked List Elements [easy] (Python)

题目链接https://leetcode.com/problems/remove-linked-list-elements/题目原文 Remove all elements from a link...
  • coder_orz
  • coder_orz
  • 2016-06-18 16:30:01
  • 3050

leetcode 203 Remove Linked List Elements C++

一次过,没什么可说的。 ListNode* removeElements(ListNode* head, int val) { ListNode * tmp = head; ...
  • a2331046
  • a2331046
  • 2016-06-11 14:29:46
  • 386

【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】

【203-Remove Linked List Elements(删除单链表中的元素)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.co...
  • DERRANTCM
  • DERRANTCM
  • 2015-08-26 07:21:56
  • 2596

【LeetCode】 203. Remove Linked List Elements C语言

/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNod...
  • godlovelong
  • godlovelong
  • 2017-04-18 09:11:18
  • 240

203. Remove Linked List Elements(python)

Remove all elements from a linked list of integers that have value val. Example Given: 1 –> 2 –> 6...
  • qq_28119401
  • qq_28119401
  • 2016-09-18 21:39:48
  • 342

[C语言][LeetCode][203]Remove Linked List Elements

题目Remove Linked List Elements Remove all elements from a linked list of integers that have value va...
  • Timsley
  • Timsley
  • 2016-04-13 08:31:57
  • 631

Leetcode_203_Remove Linked List Elements

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/45868027 Remove all el...
  • pistolove
  • pistolove
  • 2015-05-20 10:57:04
  • 953

leetcode第203题-Remove Linked List Elements

题目要求:从一个链表中删除指定的元素。 分析:首先要考虑链表的非空问题,我想这应该是判断链表和数组问题最首先要考虑处理的问题。其次是如果前几个元素都是与指定元素相同,也要做一次处理,使head指向(...
  • ZYH920521
  • ZYH920521
  • 2015-04-24 10:14:53
  • 575
收藏助手
不良信息举报
您举报文章:LeetCode 203. Remove Linked List Elements
举报原因:
原因补充:

(最多只允许输入30个字)