9.5 递归链表练习

 误链表的基本知识链表的类型:单向链表、双向链表、循环链表链表的操作:
• 插入:在链表的指定位置插入一个新节点。

• 删除:删除链表中的指定节点。• 搜索:遍历链表,查找是否存在某个特定值的节点。

• 遍历:从头节点开始,逐个访问链表中的每个节点。
链表的优点:
• 动态大小:链表的大小不需要预先定义,可以根据需要动态地增加或减少。
• 高效的插入和删除:在链表中插入或删除节点不需要移动其他节点,只需要改变指针。
链表的缺点:
• 访问速度慢:要访问链表中的某个元素,必须从头节点开始逐个遍历,不能像数组那样直接通过索引访问。
• 内存占用:每个节点除了存储数据外,还需要额外的空间存储指针。
递归方法的基本思路
递归方法通常包含两个主要部分:基本情况(base case)和递归步骤(recursive step)。
基本情况:
• 基本情况是递归函数的终止条件,它定义了最简单的问题实例,可以直接解决而不需要进一步递归。
• 没有基本情况,递归会无限进行下去,最终导致栈溢出错误。
递归步骤:
• 递归步骤是函数调用自身来解决更小或更简单的问题实例。
• 在每次递归调用中,问题规模被缩小,直到达到基本情况。
递归方法的优点:
• 代码简洁:递归方法通常能够以非常简洁的方式表达算法逻辑。
• 易于理解:对于某些问题,递归方法的逻辑比迭代方法更直观。
递归方法的缺点:
• 性能开销:递归调用会消耗额外的内存和处理时间,因为每次调用都需要保存当前状态。
• 栈溢出风险:如果递归层次过深,可能会导致栈溢出错。

反转链表,个人认为其核心思想等同于头插法,所以在这里以头插法进行代码实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值