【LintCode】删除链表中的元素

问题分析:

声明当前指针和上一个指针即可。

问题求解:

public class Solution {

    public ListNode removeElements(ListNode head, int val) {
        ListNode preListNode = new ListNode(0);// 上一个指针
        ListNode nowListNode = head;// 当前指针
        ListNode returnListNode = null;// 需要返回的链表
        preListNode.next = nowListNode;
        while (nowListNode != null) {
            if (nowListNode.val == val) {
                preListNode.next = nowListNode.next;
                nowListNode = nowListNode.next;
            } else {
                preListNode = nowListNode;
                nowListNode = nowListNode.next;
                if (returnListNode == null) {
                    returnListNode = preListNode;
                }
            }
        }
        return returnListNode;
    }
}

class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
        val = x;
    }
}
时间: 2024-10-06 11:08:03

【LintCode】删除链表中的元素的相关文章

LintCode 删除链表中的元素

删除链表中等于给定值val的所有节点. 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5 参考@GrandYang  ... 方法1:引入dummy class Solution { public: /** * @param head a ListNode * @param val an integer * @return a ListNode */ ListNode *r

LintCode Python 简单级题目 452.删除链表中的元素

原题描述: 删除链表中等于给定值val的所有节点. 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5. 标签 链表 题目分析: 删除链表中等于给定值val的所有节点. 遍历链表,找到其中next.val等于val的节点,删除. 注意的地方就是可能链表中的所有元素val都等于val,循环的开始需要从表头开始删除,需要新增一个头节点.

生成单向链表 并删除链表中某个元素

leetcode 题目描述: 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 生成链表 若输入元素不为0,则加入到链表尾部,若为0,不加入,且生成链表工作完成.代

LeetCode Delete Node in a Linked List (删除链表中的元素)

题意:给一个将要删除的位置的指针,要删除掉该元素.被删元素不会是链尾(不可能删得掉). 思路:将要找到前面的指针是不可能了,但是可以将后面的元素往前移1位,再删除最后一个元素. 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 cla

[LintCode] 删除链表中倒数第n个节点

1 /** 2 * Definition of ListNode 3 * class ListNode { 4 * public: 5 * int val; 6 * ListNode *next; 7 * ListNode(int val) { 8 * this->val = val; 9 * this->next = NULL; 10 * } 11 * } 12 */ 13 class Solution { 14 public: 15 /** 16 * @param head: The fi

删除链表中的元素

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { /** * @param head a ListNode * @param val an integer * @return a ListNode */ public ListNode

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

[203-Remove Linked List Elements(删除单链表中的元素)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 代码下载[https://github.com/Wang-Jun-Chao] 原题 Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5

LintCode Python 简单级题目 174.删除链表中倒数第n个节点

题目描述: 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 挑战 O(n)时间复杂度 标签 两根指针 链表 题目分析: 创建两个指针,head指向表头.curent指向链表第n个元素: 循环后移n次,直至curent=

删除数组中的元素(链表)

[问题描述] 给定N个整数,将这些整数中与M相等的删除 假定给出的整数序列为:1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3 应该将其放在一个链表中,链表长度为20 要删除的数是3,删除以后,链表中只剩14个元素:1 0 -3 5 6 8 10 22 -1 5 11 20 100 9 [输入] 包含3行:第一行是一个整数n(1 <= n <= 200000),代表数组中元素的个数.第二行包含n个整数,代表数组中的n个元素.每个整数之间用空格分隔: