摘要: 最新学习前google工程师王争大佬的《数据结构与算法之美》,07|链表(下),他觉得,写链表是最考验逻辑思维能力的。我附议哈哈,课后习题如下
1.单链表反转。
2.两个有序的链表合并。(同时升序或者同时降序)
3.删除链表倒数第n个结点。
4.求链表的中间节点。
5.链表中环的检测。
最好是自己动手编程,再对比下,如果有不足之处一定要留言啊,互相学习。
1.单链表反转。
1 void ReverseList(Node * pHead) 2 { 3 if(!pHead || !pHead->pNext) 4 { 5 return; 6 } 7 Node * pPrev = NULL; 8 Node * pTemp = NULL; 9 Node * pTravel = pHead->pNext; 10 while (pTravel->pNext) 11 { 12 pTemp = pTravel; 13 pTravel = pTravel->pNext; 14 pTemp->pNext = pPrev; 15 pPrev = pTemp; 16 } 17 pTravel->pNext = pPrev; 18 pHead->pNext = pTravel; 19 }