题目二:逆序链表输出。
题目描述:
将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:
typedef struct
tagListNode
{
int value;
struct tagListNode *next;
}ListNode;
要求实现函数:
void converse(ListNode
**head);
【输入】head: 链表头节点,空间已经开辟好
【输出】head:
逆序后的链表头节点
【返回】无
【注意】只需要完成该函数功能算法,中间不需要有任何IO
的输入输出
typedef struct tagListNode
{
int value;
struct tagListNode *next;
}ListNode;void converse(ListNode **head)
{
if(head == NULL || (*head)== NULL || (*head)->next == NULL)
return;
ListNode *p1=(*head),*p2,*p3;
p2 = p1->next;(*head)->next = NULL; //别忘了翻转后的末尾结点next为NULL
while(p2 != NULL)
{
p3 = p2->next;
p2->next = p1; //核心句
p1 = p2;
p2 = p3;}
*head = p1;
}
时间: 2024-10-14 13:15:10