leetcode之反转链表

原文链接:点击打开链接


Reverse a singly linked list

A linked list can be reversed either iteratively or recursively. Could you implement both?


struct ListNode* reverseList(struct ListNode* head) {
	
	// 链表为空或者只有头结点
	if (!head || !head->next)
		return head; 
	struct ListNode* p1 = head, *p2 = head->next, *p3 = p2;
	
	while (NULL != p2) {
		
		p3 = p2->next;
		p2->next = p1;
		p1 = p2;
		p2 = p3;
		
	}
	head->next = NULL;
	return (head = p1);		
}



原文地址:https://www.cnblogs.com/averson/p/5096061.html