1、先将两个链表分别进行各自排序。如果题目已说明原来的两个链表是已经排好序的话,此步可以省略。
2、新建一个空链表,按照顺序(或者由小到大或者由大到小),依次将两个链表的数据排列到新的链表中。
这样最后得到的链表就是最终合并的链表。
方法一(递归)
合并过程中,首先比较两个链表的首节点哪个小,较小的节点作为合成链表的首节点,之后将指针指向较小节点的后一个节点,再次进行上面逻辑的比较,可以发现比较过程是一个递归的操作。
通过递归到最大的节点,并进行返回递归操作到上一次递归的空间,将返回节点作为当前次大节点的下一个节点,这样从后到前返回到第一个节点的空间,递归操作完成。
方法二(非递归)
注意声明mergeHead来作为合成链表的头结点,声明current来作为一个当前合成链表最后一个节点的指针,初始化指向头结点,之后比较两个链表对应元素大小,并修改两个两个链表和current的指针指向。
想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习
上一篇: Java培训Jsp隐含对象之HttpSession session
下一篇: 前端培训面试题分析-Promise异常捕获