老师你好,这个构造函数有点看不明白

来源:5-1 Leetcode中和链表相关的问题

CarryStone2

2019-09-06

// 链表节点的构造函数
// 使用arr为参数,创建一个链表,当前的ListNode为链表头结点
public ListNode(int[] arr){

    if(arr == null || arr.length == 0)
        throw new IllegalArgumentException("arr can not be empty");

    this.val = arr[0];
    ListNode cur = this;
    for(int i = 1 ; i < arr.length ; i ++){
        cur.next = new ListNode(arr[i]);
        cur = cur.next;
    }
}

老师你好,这个构造函数有点看不明白,
传入int[] num = {1,2,6,3,6,4,5};
执行完后,cur变成了 5->Null, this变成了1->2->6->3->6->4->5->Null
返回的不是cur吗,this表示的又是什么?请老师帮忙解答,感谢。

写回答

1回答

liuyubobobo

2019-09-07

this 表示当前这个类的对象,也就是自己。


这个函数是构造函数,没有返回值。


调用 ListNode node = new ListNode(arr); 注意,这个new 是对构造函数的调用,在这个构造函数里,this就是这个node。


继续加油!:)

0
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程