leetcode 203--linked list

2018-12-24  本文已影响0人  Ariana不会哭
图片.png
  1. 如果t1指向目标的前一个位置,t1->next是val: 删除后 不可以下移一位,当前的t1就是我们需要的位置---下一个需要判断的前一个节点。


    图片.png
  2. while循环中的判断就不用加上while(t1!=nullptr) 这样速度会快很多。

C++:

ListNode* removeElements(ListNode* head, int val) {
        ListNode* Ariana=new ListNode(-1),*t1=Ariana;
        Ariana->next=head;
        while(t1->next!=nullptr){
            if(t1->next->val==val){
                auto t2=t1->next;
                t1->next=t2->next;
                delete(t2);
            }
            else
                t1=t1->next;
        }
        return Ariana->next;
    }

JAVA:

public ListNode removeElements(ListNode head, int val) {
        ListNode Ariana=new ListNode(-1),t1=Ariana;
        Ariana.next=head;
        while(t1.next!=null){
            if(t1.next.val==val){
                ListNode t2=t1.next;
                t1.next=t2.next;
            }
            else
                t1=t1.next;
        }
        return Ariana.next;
    }
上一篇 下一篇

猜你喜欢

热点阅读