36. 微软面试题:请修改append函数, 利用函数实现(链表)
来源:互联网 发布:英语口语录音软件 编辑:程序博客网 时间:2024/05/22 13:31
题目:
请修改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
0 1
- 36. 微软面试题:请修改append函数, 利用函数实现(链表)
- 42.请修改append函数,利用这个函数实现(链表):
- 请修改append函数,利用这个函数实现
- 请修改append函数,利用这个函数实现
- (C++面试题)请实现strcpy、memcpy函数
- 请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。
- 【面试题】strcmp函数实现
- 【面试题】printf函数实现
- 面试题 实现memmove函数
- 【面试题】实现memcpy函数
- 【微软100面试题实现】第02题:设计包含min函数的栈
- C++面试题,自己实现String类的构造函数,拷贝构造函数,赋值操作符,append,replace,+运算符重载等
- 《微软面试题》设计包含min函数的栈
- 2. 微软面试题:设计包含min函数的栈(栈)
- 常用字符串函数实现(面试题)
- 【面试题,纸上写程序】实现memcpy函数
- C++面试题-String函数实现
- C++面试题-String函数实现
- 第三周作业——冒泡排序和归并排序
- Linux邻居协议 学习笔记 之五 通用邻居项的状态机机制
- (孙鑫 十六) 线程同步与异步套接字编程
- MySQL主从复制配置-windows单机环境
- R.java was modified manually! Reverting to generated version!(R文件丢失异常原因汇总)
- 36. 微软面试题:请修改append函数, 利用函数实现(链表)
- (孙鑫 十七)进程间通信
- Python3.2官方文档教程- 列表
- 【JAVA菜鸟的扎实功底进行时】之 浅谈java中的四个核心概念
- differences between List and Set interface in point format
- 新版Ubuntu 13.0将集成OpenStack Havana
- 数据结构 二叉树的实现 c语言版
- (孙鑫 十八)ActiveX 控件
- 第三周作业——冒泡排序和归并排序