剑指offer 合并链表
2017-11-23 09:00
169 查看
合并排序好的两个链表,同样需要注意一下问题:
代码鲁棒性(对NULL等特殊输入有对应)
代码正确性(没有链表断裂的情况)
对于链表的大量指针操作,一定要将指针的命名对应其意义,尽量不出错
合并链表还可以用递归的方式进行
代码鲁棒性(对NULL等特殊输入有对应)
代码正确性(没有链表断裂的情况)
对于链表的大量指针操作,一定要将指针的命名对应其意义,尽量不出错
合并链表还可以用递归的方式进行
#include <iostream> #include <string> #include <vector> #include <stack> using namespace std; typedef int datatype; struct Node { datatype value; Node* Next_Node; }; //合并链表 //确定是从大到小还是从小到大?(从小打大) Node* Reverse_List(Node* ListHead1,Node *ListHead2) { //特殊输入考虑 if (ListHead1 == nullptr || ListHead2 == nullptr) { return nullptr; } if (ListHead1 == nullptr && ListHead2 != nullptr) { return ListHead2; } if (ListHead1 != nullptr && ListHead2 == nullptr) { return ListHead1; } //临时结点生成 Node* List1_temp = ListHead1; Node* List2_temp = ListHead2; Node* List3_temp = nullptr; Node* ListHead3 = nullptr; if (List1_temp->value > List2_temp->value) { ListHead3 = List2_temp; List2_temp = List2_temp->Next_Node; } else { ListHead3 = List1_temp; List1_temp = List1_temp->Next_Node; } ListHead3->Next_Node = List3_temp; while (List1_temp->Next_Node != nullptr && List2_temp->Next_Node != nullptr) { if (List1_temp->value > List2_temp->value) { List3_temp = List2_temp; List2_temp = List2_temp->Next_Node; } else { List3_temp = List1_temp; List1_temp = List1_temp->Next_Node; } } return ListHead3; } void main() { system("pause"); }
相关文章推荐
- 剑指offer-面试题17-合并两个排序的链表
- [剑指offer][面试题17]合并两个排序的链表
- 剑指Offer------合并两个排序的链表
- 剑指offer题解 合并两个排序的链表
- 剑指offer_16_合并两个排序的链表
- 剑指offer——合并两个排序的链表
- 剑指offer--合并两个排序的链表
- 剑指Offer:合并2个排序的链表
- 【剑指offer】合并两个排序的链表
- 合并两个排序的链表[剑指offer]之python实现
- 17.合并两个排序的链表|剑指Offer
- 剑指offer面试题 合并两个排序的链表
- 剑指offer--递归非递归合并两个有序链表
- [九度OnlineJudge][剑指Offer]题目1519:合并两个排序的链表
- 剑指Offer----面试题17:合并两个排序的链表
- 剑指OFFER-合并两个排序的链表-PHP
- 【剑指Offer面试题】 九度OJ1519:合并两个排序的链表
- 【剑指offer】链表相关-合并两个有序链表&递归写法17
- 剑指offer面试题17-合并两个排序的链表
- [剑指offer-1519]合并两个排序的链表