通常在算法题中,使用结构体来描述一个链表:
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) {}
};
或者是下面这种写起来比较复杂的形式:
struct ListNode{
int val;
ListNode* next;
ListNode(){
val = 0;
next = nullptr;
}
...
};
初始化一个链表指针的方法如下:
ListNode* dummyNode = new ListNode()
有一个比较坑的地方是,如果只写带参数的构造函数,不写不带参数的是不太好的,所以一般都要写一个。