题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 
 * @param pHead ListNode类 
 * @return ListNode类
 */
struct ListNode* ReverseList(struct ListNode* pHead ) {
    // write code here
    if(pHead==NULL) return pHead;
    //没有值则不做翻转,直接输出空链表即可;
    //逐个修改结点的next指针,使得链表反向
    struct ListNode* tmp = pHead->next;
    pHead->next=NULL;
    //pHead=tmp;
    while(tmp!=NULL){
        struct ListNode* q=tmp->next;
        tmp->next=pHead;
        pHead=tmp;
        tmp=q;
    }
    return pHead;
}
思路如上述的注释,另外,此题还可以使用头插法进行处理,使得链表翻转,准备尝试编写代码留在评论区。

海康威视公司福利 1149人发布
查看6道真题和解析