反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head)
{
struct ListNode* head_new = NULL;
struct ListNode* node = head;
if(head == NULL || head->next == NULL)
{
return head;
}
while(node != NULL)
{
struct ListNode* temp;
temp = node->next;
node->next = head_new;
head_new = node;
node = temp;
}
return head_new;
}
本文介绍了一种使用迭代方法来反转单链表的算法实现。输入一个单链表的头结点,通过修改每个节点的next指针,使其指向其前一个节点,从而实现链表的反转。最终返回反转后的链表头结点。

1487

被折叠的 条评论
为什么被折叠?



