ITKeyword,专注技术干货聚合推荐

注册 | 登录

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

DERRANTCM 分享于 2015-08-26

推荐:【LeetCode-面试算法经典-Java实现】【083-Remove Duplicates from Sorted List(排序的单链表中删除重复的结点)】

【083-Remove Duplicates from Sorted List(排序的单链表中删除重复的结点)】 【LeetCode-面试算法经典-Java实现】【所有题目目录索引】 原题   Given a sor

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

【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 --> 6, val = 6

Return: 1 --> 2 --> 3 --> 4 --> 5 题目大意

给定一值val,在单链表中删除值为val的结点。 解题思路

在链表头添加一个结点,对链表进遍历和删除操作。 代码实现 链表结点类 public class ListNode {

int val;

ListNode next;

ListNode(int x) { val = x; }} 算法实现类 public class Solution {

public ListNode removeElements(ListNode head, int val) {

ListNode root = new ListNode(1);

root.next = head;

// 调于记录要处理的元素的前驱结点

ListNode prev = root;

// prev.next表示要处理的结点

while (prev.next != null) {

// 要处理的结点是要删除的结点

if (prev.next.val == val) {

// 对结点进行删除操作

prev.next = prev.next.next;

}

// 当前处理的节点不需要删除,prev移动到下一个结点

else {

prev = prev.next;

}

}

// 返回新的根结点

return root.next;

}} 评测结果

点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。 特别说明 欢迎转载,转载请注明出处【http://blog.csdn.net/derrantcm/article/details/47997657】

推荐:【LeetCode-面试算法经典-Java实现】【092-Reverse Linked List II(反转单链表II)】

【092-Reverse Linked List II(反转单链表II)】 【LeetCode-面试算法经典-Java实现】【所有题目目录索引】 原题   Reverse a linked list from position m t

【203-Remove Linked List Elements(删除单链表中的元素)】 【LeetCode-面试算法经典-Java实现】【所有题目目录索引】 代码下载【https://github.com/Wang-Jun-Chao】 原题   Remove all el

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。