36. 微软面试题:请修改append函数, 利用函数实现(链表)
2014-03-27 00:01
537 查看
题目:
请修改append函数,利用这个函数实现:
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5
另外只能输出结果,不能修改两个链表的数据。
分析:
这题很简单,两个指向链表的指针,比较对应的值,并遍历
实现如下:
输出如下:
list1: 1->2->3
list2: 2->3->5
list1 and list2: 1->2->3->5
请修改append函数,利用这个函数实现:
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5
另外只能输出结果,不能修改两个链表的数据。
分析:
这题很简单,两个指向链表的指针,比较对应的值,并遍历
实现如下:
#include<iostream> using namespace std; struct Node{ Node(int _v = 0):value(_v),next(NULL) {} int value; Node *next; }; void printNodes(Node* n1, Node* n2) { Node* p1 = n1; Node* p2 = n2; while(p1 != NULL && p2 != NULL) { if(p1->value < p2->value) { cout << p1->value << "->"; p1 = p1->next; } else if(p1->value > p2->value) { cout << p2->value << "->"; p2 = p2->next; } else { if(p1->next == NULL && p2->next == NULL) cout << p2->value << endl; else cout << p2->value << "->"; p2 = p2->next; p1 = p1->next; } } while(p1 != NULL) { if(p1->next == NULL) cout << p1->value << endl; else cout << p1->value << "->"; p1 = p1->next; } while(p2 != NULL) { if(p2->next == NULL) cout << p2->value << endl; else cout << p2->value << "->"; p2 = p2->next; } } int main() { Node n1(1), n2(2), n3(3), n4(2), n5(3), n6(5); Node* node1 = &n1; node1->next = &n2; node1->next->next = &n3; Node* node2 = &n4; node2->next = &n5; node2->next->next = &n6; cout << "list1: "; printNodes(node1, NULL); cout << "list2: "; printNodes(node2, NULL); cout << "list1 and list2: "; printNodes(node1, node2); return 0; }
输出如下:
list1: 1->2->3
list2: 2->3->5
list1 and list2: 1->2->3->5
相关文章推荐
- 42.请修改append函数,利用这个函数实现(链表):
- 请修改append函数,利用这个函数实现
- 请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。
- 【编程题目】请修改 append 函数,利用这个函数实现两个非降序链表的并集
- 请修改append函数,利用这个函数实现
- 利用ini_set()函数实现对php配置文件的修改
- 用 Python实现链表的翻转,奇偶下标修改(利用数组,非常简单)
- 【微软100面试题实现】第01题:把二元查找树转变成排序的双向链表
- 42 修改append函数,实现:两个非降序链表的并集
- 剑指offer_面试题5_从尾到头打印链表(栈和递归实现)
- c++实现单向单链表及常见面试题
- 利用C/C++扩展php语言实现 Usher_GetHostIP无参函数
- 【面试题】printf函数实现
- 不要使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数:
- python实现链表逆序(反转函数)
- 封装链表库实现单链表:增加,删除,查询,修改,排序,逆转
- 利用C语言中的函数实现文件的Copy
- C语言变参宏实现函数批量修改
- 利用脚本脚本实现修改CSS样式
- 利用函数实现华氏摄氏温度转换