本文共 520 字,大约阅读时间需要 1 分钟。
反转一个单链表。
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL使用三个指针,分别标记上一次反转后的表头,这一次需要反转的节点和下一次需要反转的节点
过程中相当于将一个链表拆成了两个 以示例来说就是 第一次反转后成为 1 和 2345 第二次反转后成为 21 和 345 第三次反转后成为 321 和 45 等等struct ListNode* reverseList(struct ListNode* head){ struct ListNode *next; struct ListNode *curr = head; struct ListNode *pre = NULL; if(head == NULL) return head; while(curr) { next = curr -> next; curr -> next = pre; pre = curr; curr = next; } return pre;}
转载地址:http://nwkti.baihongyu.com/