理解指针画框图比较有效
int * head = NULL;
等效于
int * head;
head = NULL;
分界线
struct student * p1;
struct student * p2;
p2 = p1;
if(p1->next == p2->next)
{
true;
}
指针 结构体的引用注意事项
- 结构体地址引用: 指针进来用->
- 结构体直接引用: 用点点点
// 反转单链表
ListNode * ReverseList(ListNode * pHead)
{
// 如果链表为空或只有一个结点,无需反转,直接返回原链表头指针
if(pHead == NULL || pHead->m_pNext == NULL)
return pHead;
ListNode * pReversedHead = NULL; // 反转后的新链表头指针,初始为NULL
ListNode * pCurrent = pHead;
while(pCurrent != NULL)
{
ListNode * pTemp = pCurrent;
pCurrent = pCurrent->m_pNext;
pTemp->m_pNext = pReversedHead; // 将当前结点摘下,插入新链表的最前端
pReversedHead = pTemp;
}
return pReversedHead;
}