标签:info 需要 除了 class element 哈哈 引入 内存 代码
class Solution {
    public ListNode removeElements(ListNode head, int val) {
    //如果没有前置头,那么需要分是头还是链身
        //给它加一个前置头哈哈
        ListNode dummyHead=new ListNode(-1);
        //删除的话,那么需要找到下一个,也就是说找到这个节点的上一个节点。
        dummyHead.next=head;  
        ListNode node=dummyHead;
        while(node!=null)
        {
            if(node.next!=null)
            {
                if(node.next.val==val)
                {
                    node.next=node.next.next;
                    // node.next.next=null;  这句话也应该学到很多的。
                    continue;
                }
            }
            node=node.next;
        }
        return dummyHead.next;
    }
}
T203 删除链表中的元素:
key1:无论怎么说,添加一个dummyhead头结点是不错的选择
key2:对于删除来说,一定是到达需要删除节点的上一个节点。那么比较的就是 当前节点的下一个节点,用下一个节点进行比较
如果说是删除了相应的节点,那么指针应该留在原地不动,因为下一个节点变成新的了,再去比较。
如果没删除节点,那么应该移动。
这些没什么可说的了。
key3:if(node.next.val==val)
{
node.next=node.next.next;
// node.next.next=null; 这句话也应该学到很多的。
对于下面这句话,到底错在哪了。
对于链表的删除:1.先保存长串的节点 2.用第三方删除法,不能在原地删除。 原因:因为原地删除的话,那么再删除的就影响到本身了。你细品这句话就懂了。
删除:必须先存长串的节点,然后必须引入第三方来删除。
改代码:
 Node n1=node.next;
                    node.next=n1.next;
                    n1.next=null;

确实好像减小了内存的消耗
标签:info 需要 除了 class element 哈哈 引入 内存 代码
原文地址:https://www.cnblogs.com/startFrom0/p/12609016.html