为什么ListNode链表,节点.next能指向下一个节点,是里面代码那几行导致的。

里面ListNode应该理解成链表还是节点?

public class ListNode {
    int val;
    ListNode next = null;
 
    ListNode(int val) {
        this.val = val;
    }
 
    // 添加新的结点
    public void add(int newval) {
        ListNode newNode = new ListNode(newval);
        if (this.next == null)
            this.next = newNode;
        else
            this.next.add(newval);
    }
 
    // 打印链表
    public void print() {
        System.out.print(this.val);
        if (this.next != null) {
            System.out.print("-->");
            this.next.print();
        } else {
            System.out.println();
        }
    }
}

ListNode 代表的是链表中的节点。
类中有两个属性:val 和 next;其中val代表的就是这个节点中存的值,next代表的就是这个节点的下一个节点是什么。
在这种情况下,遍历一个个节点的next,就组成了一个完整的链表。

add()方法就是给属性next赋值的。

回复不易,如果我的回复对你有所帮助的话,请记得采纳哦~

img
ListNode是一个节点类,这个类里面有个成员变量是他自己,其实就是递归调用,所以就成为了链表;

.Next你保存的就是下一个节点的地址呀,当然能指向下一个节点嘛