11.15链表逆置

发布时间 2023-11-21 22:53:46作者: 艾鑫4646

 

struct ListNode *reverse( struct ListNode *head ){
    struct ListNode *L=(struct ListNode *)malloc(sizeof(struct ListNode)),*p,*q;
    L->next=NULL;
    p=head;//中间量
    while(p){
        q=(struct ListNode *)malloc(sizeof(struct ListNode));
        q->data=p->data;
        q->next=L->next;
        L->next=q;
        p=p->next;
    }
    return L->next;
}

函数题思路:

先定义一个新链表L,p作为中间量存储head链表,q作为中间量存储每一个链表结点的值,遍历p用头插法的把每一个结点插入L,返回新链表L。