链表

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

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才有效
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务