首页 > 其他 > 详细

0203. Remove Linked List Elements (E)

时间:2020-07-21 12:02:02      阅读:48      评论:0      收藏:0      [点我收藏+]

Remove Linked List Elements (E)

题目

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

Example:

Input:  1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5

题意

将给定链表中所有含有指定值的结点删除。

思路

注意需要连续删除结点的情况。


代码实现

Java

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode dumb = new ListNode(0);
        dumb.next = head;
        ListNode pre = dumb;
        ListNode cur = head;

        while (cur != null) {
            if (cur.val == val) {
                pre.next = cur.next;
                cur = cur.next;
            } else {
                pre = pre.next;
                cur = cur.next;
            } 
        }

        return dumb.next;
    }
}

JavaScript

/**
 * @param {ListNode} head
 * @param {number} val
 * @return {ListNode}
 */
var removeElements = function (head, val) {
  let dummy = new ListNode(0, head)
  let pre = dummy
  let cur = head
  while (cur) {
    if (cur.val === val) {
      pre.next = cur.next
    } else {
      pre = cur
    }
    cur = cur.next
  }
  return dummy.next
}

0203. Remove Linked List Elements (E)

原文:https://www.cnblogs.com/mapoos/p/13352934.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!