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 = (*cur).next”,意义是“解引用,取成员,赋值”也就是“顺着指针定位到节点,读出next字段里存的地址值,把这个地址写进左边的变量”。
同时在C语言中,链表的结构和函数必须分开写:
1 | typedef struct Node{ |