1.用struct实现一个双向链表,基本素养,一定要会
struct tagDListNode{
int val;
tagListNode *pre;
tagListNode *next;
tagDListNode() : val(0),pre(nullptr),next(nullptr){}
tagDListNode(int _val) : val(_val),pre(nullptr),next(nullptr){}
tagDListNode(int _val,tagListNode *_pre,tagListNode *_next) : val(_val),pre(_pre),next(_next){}
}ListNode;
2.关于->next在等式左边和右边的含义
ListNode *head=new ListNode(0);
ListNode *cur=new ListNode(1);
/* 将head指针,指向cur的next节点,本质上来说,cur已经有下一个节点了,只是把head挪一下位置 */
head=cur->next;
/* 讲head指针指向的节点,当做cur的next节点,这里可能cur本身没有下一个节点,或者cur的下一个节点是其他node */
cur->next=head;