首页 > 其他 > 详细

LeetCode--LinkedList--203. Remove Linked List Elements(Easy)

时间:2019-07-13 17:21:35      阅读:85      评论:0      收藏:0      [点我收藏+]

203. Remove Linked List Elements(Easy)

题目地址https://leetcode.com/problems/remove-linked-list-elements/

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

solution

题意是给定一个链表和一个目标值val,要求删除链表里面与val值相同的结点。

/**
 * 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 start = new ListNode(-1);  //构造一个额外的头结点
        ListNode p = start;
        start.next = head;
        while (p.next != null)
        {
            if (p.next.val == val)
                p.next = p.next.next; //p指针始终指向待删除结点的前一个结点
            else
                p = p.next;    
        }
        return start.next;
    }
}

解析:一般来说,只要涉及到链表的删除操作,构造一个额外的链表头能将题目简化不少。就本题来看,只要构造一个额外的链表头start,start.next指向head结点,然后构造一个p指针,p指针始终指向待删除结点的前一个结点,这样就统一了表头与表尾的删除操作。

Notes
1.链表删除得注意表头和表尾;

LeetCode--LinkedList--203. Remove Linked List Elements(Easy)

原文:https://www.cnblogs.com/victorxiao/p/11181312.html

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