剑指offer——25.合并两个排序的链表
题目:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
知识点:
-无
注意:
- 以后写代码前要在开头写出特殊的输入情况
- 递归认真考虑好输入和输出
代码实现:
定义2个指针pHead1、pHead2,依次比较两链表中的值的大小,放入新链表
/*合并链表*/
ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
{ ListNode* mergeNode = nullptr;//特殊情况if (pHead1 == nullptr) {return pHead2;}else if (pHead2 == nullptr){return pHead1;}else if (pHead1 == nullptr && pHead2 == nullptr) {return nullptr;}else {//比较链表1和2对应数的大小if (pHead1->m_nValue < pHead2->m_nValue) {mergeNode = pHead1;mergeNode->m_pNext = Merge(pHead1->m_pNext, pHead2);}else {mergeNode = pHead2;mergeNode->m_pNext = Merge(pHead1, pHead2->m_pNext);}return mergeNode;}
}int main()
{ ListNode* pNode1 = CreateListNode(1);ListNode* pNode3 = CreateListNode(3);ListNode* pNode5 = CreateListNode(5);ConnectListNodes(pNode1, pNode3);ConnectListNodes(pNode3, pNode5);PrintList(pNode1);ListNode* pNode2 = CreateListNode(2);ListNode* pNode4 = CreateListNode(4);ListNode* pNode6 = CreateListNode(6);ConnectListNodes(pNode2, pNode4);ConnectListNodes(pNode4, pNode6);PrintList(pNode2);ListNode* MergeNode = Merge(pNode1, pNode2);PrintList(MergeNode);getchar();return 0;
}
剑指offer——25.合并两个排序的链表相关推荐
- 《LeetCode力扣练习》剑指 Offer 25. 合并两个排序的链表 Java
<LeetCode力扣练习>剑指 Offer 25. 合并两个排序的链表 Java 一.资源 题目: 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: ...
- LeetCode Algorithm 剑指 Offer 25. 合并两个排序的链表
剑指 Offer 25. 合并两个排序的链表 Ideas 这题让我想到了归并排序: 划分问题:把序列分成元素个数尽量相等的两半: 递归求解:把两半元素分别排序: 合并问题:把两个有序表合并成一个. 捞 ...
- 【LeetCode】剑指 Offer 25. 合并两个排序的链表
[LeetCode]剑指 Offer 25. 合并两个排序的链表 文章目录 [LeetCode]剑指 Offer 25. 合并两个排序的链表 一.递归 二.伪头节点 总结 一.递归 思路: 如果有一个 ...
- 剑指offer系列——剑指 Offer 25. 合并两个排序的链表
⭐️前面的话⭐️ 大家好!本篇文章将介绍关于数据结构之链表的OJ题,来自力扣:21. 合并两个有序链表 或 剑指 Offer 25. 合并两个排序的链表 题解,展示代码语言暂时为:Java语言与C语言 ...
- 【最佳解法】剑指 Offer 25. 合并两个排序的链表
立志用最少的代码做最高效的表达 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 输出:1-> ...
- 【算法】剑指 Offer 25. 合并两个排序的链表
文章目录 1.概述 2. 对比 3.递归 1.概述 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的. 示例1: 输入:1->2->4, 1->3->4 ...
- 剑指offer 25. 合并两个排序的链表
1.问题描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 2.解决思路 1)非递归的方法 如果可以改变链表,直接从头结点开始依次移动比较两个链 ...
- LeetCode-剑指 Offer 25. 合并两个排序的链表
剑指 Offer 25. 合并两个排序的链表 思路一:双指针法 1.设置dummy为头结点,放置于新链表之前,最后返回的就是dummy.next:设置cur为当前节点,从dummy开始 2.当两个链表 ...
- 剑指Offer:合并两个排序的链表【25】
剑指Offer:合并两个排序的链表[25] 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 题目分析 每次都是比较箭头节点,把小节点连接到已经合 ...
最新文章
- 如何写一篇好的技术博客
- 干货 | 循环神经网络LSTM的数学过程
- Leetcode 130. 被围绕的区域 解题思路及C++实现
- php 真实访问次数,PHP将访问次数写入文件下
- 复制文件时怎么保留权限
- go语言基础到提高(5)-结构
- 操作系统学习(三)-- CPU调度
- c和JAVA的安全编码_C、C++ 和 Java安全编码实践提示与技巧
- easycode 表配置_EasyCode插件使用及模板参考
- 从华为“流程与IT管理部”看IT部门定位
- c语言中队列的作用,循环队列的实现(C语言)
- vue 引入vue-resource给页面加点动态数据
- 国产3G之父--------李世鹤
- java io 系列(转载skywang12345)
- 中文数字阿拉伯数字相互转换(Java版本)
- Grid++Report报表开发工具介绍
- JAVA:货币金额类型、精确小数类型数值的定义BigDecimal和基本运算操作
- DAEFRHDSGYEVHHQKLVFFAEDV|138648-77-8
- 像个黑客一样在网络上来无影去无踪之IP代理理论篇
- 前端如何实现一键截图功能?