7、设计链表

获取第n个节点的值:

伪代码:

cur = dumyhead->next;//dumyhead为虚拟头节点
while(n)//当返回的是第0个节点时
{
    cur = cur->next;
    n--;
}
return cur->val;

头部插入节点:

 伪代码:

dumyhead = new node();//创建虚拟节点
newnode->next = dumyhead->next;
dumyhead->next = newnode;
return dumyhead->next;

尾部插入节点:

伪代码:

cur = dumyhead;
while(cur->next != null)
{
    cur = cur->next;
}
cur->next = new node;
return dumyhead->next;

第n个节点前插入节点

伪代码:

newnode = new node();
cur = dumyhead;
while(n)
//默认为零下标
{
    cur = cur->next;
    n--;
}
newnode->next = cur->next;
cur->next = newnode;
return dumyhead->hnext;

删除第n个节点:

伪代码:

cur = dumyhead;
while(n)
{
    cur = cur->next;
    n--;
}
cur->next = cur->next->next;
return dumyhead->next;

        本文的核心有两个:1是边界的判断,判断是否找到的是第n个节点,即while(n),只需要考虑极端情况,即找n=0时的情况下,cur是否为第0个节点。2是增加链表节点时要先增加newnode->next,在增加cur->next。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值