首页 > 代码库 > [2013] 链表逆序
[2013] 链表逆序
题目二:逆序链表输出。
题目描述:
将输入的一个单向链表,逆序后输出链表中的值。链表定义如下:
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; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。