赞
踩
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
确保代码的鲁棒性
链表的熟练程度
指针
struct ListNode* reverseList(struct ListNode* head){ // 确保代码的鲁棒性 if(head == NULL) return NULL; // 1.只有一个节点 if(head->next == NULL){ return head; } // 2. 拥有两个以上的节点 struct ListNode *q,*r, *p; // 初始化q // 初始化r,p q = head; r = head->next; p = r->next; q->next = NULL; // 如果此时的p是空 while(p){ r->next = q; q = r; r = p; p = p->next; } r->next = q; return r; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。