C++在类内用类名作为数据类型定义一个指针作为成员变量的作用?

在LeetCode做第二到题遇到的一个问题,为什么可以在类内用类名定义一个指针ListNode *next;为什么要这么用?

  • struct ListNode {
  • int val;
    
  • ListNode *next;
    
  • ListNode() : val(0), next(nullptr) {}
    
  • ListNode(int x) : val(x), next(nullptr) {}
    
  • ListNode(int x, ListNode *next) : val(x), next(next) {}
    
  • };