所属专栏:玩转数据结构题型
博主首页:初阳785
代码托管:chuyang785
感谢大家的支持,您的点赞和关注是对我最大的支持!!!
博主也会更加的努力,创作出更优质的博文!!
关注我,关注我,关注我,重要的事情说三遍!!!!!!!!
1.题目来源
2.题目描述
给i电工单链表的头节点head,请反转链表,并返回反转后的链表的头节点。
3.解题思路
我们的思路是创建一个newnode新的头节点,然后依次向着这个头节点进行头插。
首先我们第一一个cur变量指向我们原先单链表的头节点head,然后由这个cur指向的节点头插到我们新创建的newnode头节点,然后让我们的newnode=cur如上图。但是我们头插后就找不到cur指向的下一个节点,所以我们还有一个next变量来记录下一个节点,在让cur=next。
然后以此迭代,知道cur=NULL后停止。
最后我们只需要返回新的头节点就行了。
4.代码展示
struct ListNode* reverseList(struct ListNode* head)
{
struct ListNode *cur=head;
struct ListNode *newnode=NULL;//新的头节点
while(cur)
{
struct ListNode *next=cur->next;//记录cur指向的下一个节点
//迭代
cur->next=newnode;
newnode=cur;
cur=next;
}
//返回新的头节点
return newnode;
}