题解 | #牛牛的单向链表#

牛牛的单向链表

https://www.nowcoder.com/practice/95559da7e19c4241b6fa52d997a008c4

#include <stdio.h>
#include <stdlib.h>
typedef struct TNode{
    int val;
    struct TNode *next;
}TNode, *Link;

//创建一个链表
void create_link(Link *t)
{
    //创建头结点
    *t = (TNode*)malloc(sizeof(TNode));
    (*t)->val = 0;
    (*t)->next = NULL;
}

//头插法插入节点
void add_head(Link *t, int val)
{
    TNode * tem = (TNode*)malloc(sizeof(TNode));
    tem->val = val;
    tem->next = NULL;
    tem->next = (*t)->next;
    (*t)->next = tem;
}
//尾插法插入节点
void add_end(Link *t, int val)
{
    TNode * tem = (TNode*)malloc(sizeof(TNode));
    tem->val = val;
    tem->next = NULL;
    TNode * p = (*t);
    while(p->next != NULL){
        p = p->next;
    }
    p->next = tem;
}
//链表的遍历
void print(Link t)
{
    //去除头结点
    TNode*p = t->next;
    while(p){
        printf("%d ", p->val);
        p = p->next;
    }
}


int main() {
    int n, i, tem;
    //创建链表
    Link t;
    create_link(&t);
    scanf("%d", &n);
    for(i = 0; i < n; i++){
        scanf("%d", &tem);
        add_end(&t, tem);
    }
    print(t);
    return 0;
}

这里对链表进行初始化或者增删改查时,要传指针,否则就是值传递不会修改链表的值。

全部评论

相关推荐

牛客10001:G了+1,被前端/客户端给捞起来了,不太想面
投递美团等公司8个岗位 美团求职进展汇总
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务