iOS开发----数据结构----单链表的反转


List* ReverseList2(List* head){ if(NULL==head|| NULL==head->next) return head; //少于两个节点没有反转的必要。 ActList* p,* q,* r; // 通过三个指针 p = head; // 先保存head q = head->next;// 保存第二个
// 这里要先处理最后一个 head->next = NULL; //旧的头指针是新的尾指针,next需要指向NULL while(q){ r = q->next; //先保留下一个step要处理的指针 q->next = p; //然后p q交替工作进行反向 p = q; // p指针移动:也就是将地址重新赋值 q = r; // q指针移动 } head=p; // 最后q必然指向NULL,所以返回了p作为新的头指针 return head; }

 

    原文作者:算法小白
    原文地址: https://www.cnblogs.com/1018475062qq/p/6994681.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞