java whilet1.next循环下面的www.example.com =null有什么作用?

jvlzgdj9  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(160)
public class Solution {

    public static LinkedListNode<Integer> removeDuplicates(LinkedListNode<Integer> head) {
        //Your code goes here
        
        if(head==null){
            return head;
        }
        if(head.next==null){
            return head;
        }
        LinkedListNode<Integer> t1=head, t2=head.next;
        LinkedListNode<Integer> final_head=head;
        while(t2!=null){
             if(t1.data==t2.data){
                 t2=t2.next;
             }else{
                 t1.next=t2;
                 t1=t2;
             }
        }
                t1.next=null;
        return final_head;

    }
}

为什么当我删除t1.next=null时它显示运行时错误?我错过了什么吗?我不明白t1.next=null的用途。

ckocjqey

ckocjqey1#

从正确性的Angular 回答为什么需要t1.next = null ...
考虑这样的链表
....跳过循环的几个初始迭代....并且当t1为并且t2指向倒数第二个3时。
if条件将为 true,您将把t2移动到最后一个3(而t1仍然指向倒数第二个3)。
在下一次迭代中,相同的if条件将为 true,您将使t2null 并跳出while循环。
现在,要获得删除重复的3的效果,应该将t1next 设置为空。
从这里,
设置t1.next = null会导致,

相关问题