关于单链表的题目是面试过程中比较爱出的算法题,因为代码不会很多,大概都能在十分钟之内给出答案,所以会受到面试官的青睐,如果再增加难度,就是关于二叉树的操作了。所以对链表和二叉树的的经典题是我们应该掌握的。
本章对于单链表的逆置进行详细分析。
思路:遍历单链表,利用头插的方式将遍历到的节点插入但链表中
指针:p=NULL;
指针:q=NULL;
每遍历head链表上的节点,将节点头插到p中,最后返回指针p即可。
struct ListNode
{
int val;
struct ListNode *next;
};
ListNode* ReverseList(ListNode* pHead)
{
if(pHead==NULL || pHead->next==NULL)
{
return pHead;
}
ListNode* p=NULL;
ListNode* q=NULL;
while(pHead)
{
p=pHead->next;
pHead->next=q;
q=pHead;
pHead=p;
}
return q;
}
。。。。。
可以简单的理解为得到节点,头插到新的链表中即可。