单链表创建之--尾插法建立带头结点的单链表

单链表创建方法主要有头插法尾插法,这里记录尾插法创建带头结点的单链表过程

image.png
image.png
image.png
image.png
image.png

尾插法算法代码:

LinkList List_TailInsert(LinkList &L){
    int x;
    L = (LinkList)malloc(sizeof(LNode));
    LNode *s, *r = L; // r为表尾指针
    scanf("%d", &x);
    while(x != 9999){
        s = (LNode *)malloc(sizeof(LNode));
        s->data = x;
        r->next = s;
        r = s;
        scanf("%d", &x);
    }  
    r->next = NULL;
    return L;
}

反转链表C语言伪代码

struct ListNode* ReverseList(struct ListNode* pHead) {
    struct ListNode* L;
    L = (struct ListNode*)malloc(sizeof(struct ListNode));
    L->next = NULL;
    struct ListNode* p = pHead;
    struct ListNode* r;
    while(p != NULL){
        r = p->next;
        p->next = L->next;
        L->next = p;
        p = r;
    }
    return L->next;    
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容