C++の千层套路
C++在链表层面的书写
在C++中链表的定义为:
1 | struct ListNode{ |
以下总结了我个人学习中的小tips:
1. 在一个节点中,我们使用一个指针cur指向节点的数据域就可以写成"cur->data",称为“cur的data”;指向指针域可以写成“cur->Next”,称为“cur的Next”。
2. 至于为什么要将next赋为NULL是因为如果不将next指针初始化,里面就保存着垃圾值。这种在构造函数中给成员赋初值的方法叫做“初始化列表”,其实也可以像C语言一样,在函数体内赋值,但是我们习惯上在定义的时候就将它赋值。
3. 其中“cur = cur->next;” 中的“->”运算符是一个语法糖,完全形式写作“(*cur).next”,意义是“解引用,取成员,赋值”也就是“顺着指针定位到节点,读出next字段里存的地址值,把这个地址写进左边的变量”。
同时在C语言中,链表的结构和函数必须分开写:
1 | typedef struct Node{ |