Linked Lists
Pointer to struct/obj
首先学习一下指针的相互赋值操作,当指针出现在等号的两侧时,代表着不同的行为,下图中p也是指针:

只要记住,指针操作本质上是将变量存储的地址值赋给另一个变量,就可以类比理解所有的指针操作了,因此在函数中将指针变量作为参数进行传递时,就很容易知道什么时候用值语义,什么时候用引用语义了。
这块需要多练习,写出的代码不能有内存泄露(失去了对之前申请的内存的指针,并且没有释放他们)。
Linked Lists2
我们阅读C++中的定义时,可以采用从右向左的原则,举例如下:
ListNode*& a:a是什么,a是一个引用,a是一个对指针的引用,a是一个对ListNode类型的指针的引用。ListNode ** a: a是一个指针,是指向ListNode类型指针的指针。
基本上上述二者起到的作用是相同的,都是为了直接对ListNode*的对象进行修改,但是第一种*&更好,因为相比于第二种,第一种可以少很多解引用操作,使代码更为简洁。
这块需要多练习,概念并不多,可以尝试自己实现一个链表,并实现add、Remove等相关API接口。