以下是对“p->next = head; head = p;”这两行代码的图解说明。
假设初始状态有一个链表,链表头为head,指向节点 A,节点 A 又指向节点 B,节点 B 指向NULL。
1. 现在有一个新的节点p。
• p不与链表中的任何节点相连。
2. 执行“p->next = head;”。
• 此时p的next指针指向了原来的链表头,也就是节点 A。
3. 执行“head = p;”。
• 链表头head现在指向新节点p。
最终的链表结构为:新节点p作为链表头,p指向原来的链表头节点 A,节点 A 指向节点 B,节点 B 指向NULL。
总结:这两行代码实现了将新节点p插入到链表头部的操作。