链表

建立单向链表
尾插法:(建法虽然简单,但是会多一个没用的头指针)

struct ListNode{
  int m_key;
  ListNode* next;  
};

ListNode* CreatList(int n){
    ListNode* head=(ListNode*)malloc(sizeof(ListNode));  //申请空间
    ListNode* q=nullptr;
    ListNode* r=head;
    for(int i=0;i<n;i++){
        q=(ListNode*)malloc(sizeof(ListNode));
        cin>>q.m_key;                 //键盘输入,这步十分重要
        r->next=q;                    //新建的节点插入尾部
        r=q;                          //跟新尾节点
    }
    r->next=nullptr;                 //这一步没有的话会死掉,因为两个地方都指向q了
    return head;                     //返回头节点
}
int main()
{
    int n;
    while(cin>>n){
        ListNode* head=CreatList(n);//这里要注意,其实数据head->next才有效
    }
}
全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务