leetcode707设计链表-3-链表末尾添加一个节点

本文主要讲解设计链表中的第3个问题:

链表末尾添加一个节点

  • void addAtTail(int val) 将一个值为 val 的节点追加到链表中作为链表的最后一个元素。

c++代码如下,末尾

具体要点:

1.定义临时指针cur,遍历到尾部,而不是使用头节点head进行遍历(因为head指向的值不断变化,最后无法返回原先的头节点)


2.既然cur要遍历到尾部那么,什么条件算是尾部呢?

        当下一个节点是Null时,即我们到达了尾部

                                                        cur -> next==Null


3.然后使用链表常用操作:定义一个虚拟头节点dummyHead


4.循环内执行什么操作?

        不断更新临时指针,指向下一个节点

                                                         cur=cur->next


5.需要考虑的细节:while中的是判断条件是  cur!=Null 还是判断 cur->next!=Null 呢?

        对于这种问题,我们只要考虑一下头节点的情况就好

                当链表只有一个节点,即头节点时,需要删除的也是这个头节点

                由于我们定义了dummyHead,所以开始时cur=dummyHead

                我们需要判断是 cur->next!=Null    因为cur->next才是头节点

可以参考这个博客,里面也涉及了差不多的边界条件的考虑


c++代码如下

void addAtTail(int val) {
        LinkedNode* newNode = new LinkedNode(val);
        LinkedNode* cur = _dummyHead;
        while(cur->next != nullptr){
            cur = cur->next;
        }
        cur->next = newNode;
        _size++;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值