有序链表和并的递归写法和非递归写法(c语言)

这篇博客介绍了如何将两个有序递增链表pa和pb合并为一个链表。分别提供了非递归和递归两种实现方法。非递归方法通过两个指针head和p进行操作,根据节点值判断将相应节点插入合并链表。递归方法则设定递归终止条件和递归过程,根据节点值决定合并方向。
摘要由CSDN通过智能技术生成

题目描述

有两个有序递增链表pa和pb,现在要把他们合并成一个链表,分别用递归算法和非递归算法实现


题目分析

非递归实现:

使用两个指针head 和p ,head 作为头结点,p作为活动指针.

如果pa所指元素<pb所指元素,那么把pa所指元素,放入合并后的链表中,然后把p->next指向pa,把p指向pa,把pb向后移动,即pb=pb->next

如果pa所指元素>pb所指元素,那么把pb所指元素,放入合并后的链表中,然后把p->next指向pb,把p指向pb,把pb向后移动,即pb=pb->next

如此往复,直到pa 或者pb 为 null 为止 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值