单链表的基本操作——寻找尾结点

#include <iostream>
#include <algorithm>
using namespace std;
//类型声明。
struct LNode{
int data;
LNode *next;
};
typedef LNode *LinkList;
//初始化,构造空的只含头结点的单链表。
void initList(LinkList &L)
{
    L=new LNode;
    L->next=NULL;
}
//找尾结点
LNode *getTail(LinkList L)
{
    LNode *r;
    r=L;
    while(r->next!=NULL)
    {
        r=r->next;
    }
    return r;
}
int main()
{
    LinkList L;
    initList(L);
    int n;
    cin>>n;
    LNode *tail = getTail(L);
    while(n--)
    {
    LNode *newNode = new LNode;
    cin >> newNode->data;
    newNode->next = NULL;
    tail->next = newNode;
    tail = tail->next;
    }
    cout<<tail->data;
    return 0;
}

注意问题:

  1. 在初始化链表时,initList函数的参数应使用引用传递,以便在函数内部修改实参。
  2. 在获取尾结点时,应将其声明为LNode*类型。
  3. 在循环添加新节点时,应先创建新节点,然后将新节点链接到链表的尾部,并更新尾结点。
  4. 注意输入的数据是否与链表节点的数据类型匹配。
  5. 输出尾结点数据时,不需要解引用r->data,即不需要*r->data
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值