题目

解决代码及点评

/*两个升序链表合并,并要求去掉重复元素
*/
#include <iostream>
using namespace std;class LinkNode
{
public:int _val;LinkNode* _next;LinkNode(int val, LinkNode* next = NULL) :_val(val), _next(next){}
};class Link
{
public:LinkNode* _head;Link() : _head(NULL){}/* 构造有序链表函数 */void add(int val){/* 如果头节点为空,则直接赋值头结点 */if (_head == NULL){_head = new LinkNode(val);return;}/* 循环找合适的位置,将新的val插入到链表中 */ for (LinkNode* pos = _head; ; pos = pos->_next){/* 如果找到末尾,还没有合适位置,那么新的val插入到尾部 */if (pos->_next == NULL){pos->_next = new LinkNode(val);break;}/* 如果某个位置的_val > val,那么新的val应该插入到该位置 */else if (pos->_next->_val > val){LinkNode* node = new LinkNode(val);node->_next = pos->_next;pos->_next = node;break;}}}/* 合并并去除重复节点 */void merge(const Link& link){LinkNode* pos = _head;// 遍历所有link节点for (LinkNode* node = link._head; node; node = node->_next){// 找到合适的位置进行插入操作for (;; pos = pos->_next){/* 如果值相等,那么直接丢弃 */if (pos->_val == node->_val)break;/* 如果找到末尾,则把新节点放到末尾 */if (pos->_next == NULL){pos->_next = new LinkNode(node->_val);pos = pos->_next;break;}/* 如果找到中间某个位置,那么新节点要插入 */else if (pos->_next->_val > node->_val){pos->_next = new LinkNode(node->_val, pos->_next);pos = pos->_next;break;}}}}/* 打印所有节点 */void print(){for (LinkNode* node = _head; node; node = node->_next){cout << node->_val << " ";}cout << endl;cout << "****************" << endl;}
};int main()
{Link l1;l1.add(1);l1.add(3);l1.add(5);l1.add(10);l1.print();Link l2;l2.add(1);l2.add(5);l2.add(4);l2.add(3);l2.add(6);l2.print();l1.merge(l2);l1.print();system("pause");
}

代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn

下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”

2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行

程序运行结果






转载于:https://www.cnblogs.com/new0801/p/6177368.html

基于visual Studio2013解决面试题之0402合并升序链表并去重相关推荐

  1. 基于visual Studio2013解决面试题之1102合并字符串

     题目 解决代码及点评 /*给出一个函数来合并两个字符串 A 和 B .字符串 A 的后几个字节和字符串 B 的前几个字节重叠重叠部分只要一份 */#include <iostream&g ...

  2. 基于visual Studio2013解决面试题之0901奇偶站队

     题目 解决代码及点评 /*给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数 解决方法:两边同时遍历,如果遇到左边偶数或者右边基数,则交换 */#include <ios ...

  3. 基于visual Studio2013解决面试题之0403串联字符串

     题目 解决代码及点评 /*有 n个长为 m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环 ...

  4. 基于visual Studio2013解决面试题之0804复杂链表

     题目 解决代码及点评 /*复杂链表的拷贝,现在有一个复杂链表,完成一个clone函数拷贝一个链表复杂链表是指struct Node{struct Node* _next;struct Node ...

  5. 基于visual Studio2013解决面试题之0209最大堆排序

     题目 解决代码及点评 /*最大堆是一个数组数据结构,任意一个下标i,它的值大于i*2和i*2+1的值(i从1开始)当这样的堆形成时,最大值在数组最开始的位置.当这样的堆形成后,将第一个元素交换 ...

  6. 基于visual Studio2013解决面试题之1002公共子串

     题目 解决代码及点评 /*求两个字符串的最小公共子串这道题简单的两个字符串遍历即可 */#include <iostream> using namespace std; const ...

  7. 基于visual Studio2013解决面试题之1007鸡蛋和篮子

     题目 解决代码及点评 /*n个鸡蛋放m个篮子,篮子不能为空,有多少种方法 */#include <iostream> using namespace std; const int ...

  8. 基于visual Studio2013解决面试题之0601二叉树深度

     题目 解决代码及点评 /*求二叉树深度 */#include <iostream> #include <stack> using namespace std;templ ...

  9. 基于visual Studio2013解决面试题之0802数字最多元素

     题目 解决代码及点评 /*查找数组中超过一半的那个元素方法1:每次删除数组中一对不相同的value,最后剩下都是想通的数字时,就是超过一半的那个元素了方法2:排序后,取中间元素即可 */#in ...

最新文章

  1. ef unitofwork 主从表更新
  2. android上的i-jetty (1)环境搭建
  3. 用gulp构建你的前端项目
  4. WSAGetLastError返回的可能错误代码
  5. STM32F 103C8T6开发板 点亮LED灯
  6. HTTP权威指南阅读笔记一:HTTP概述
  7. linux系统漏洞修复2019,Linux中 OpenSSH 输入验证错误漏洞(CVE-2019-16905) 修复解决方案...
  8. E-BERT: 电商领域语言模型优化实践
  9. 鹏城实验室支持建设的OpenI启智社区荣登2021“科创中国”开源创新榜
  10. SuiteCRM的汉化
  11. 计算机毕业设计Spark+SpringBoot旅游推荐系统 旅游大数据分析大屏 旅游可视化 旅游路线规划系统 旅游推荐App小程序 旅游网站 自驾游路线规划系统 自驾游推荐系统 自驾游推荐App小程序
  12. pythonalist是什么意思_3. Python3轻食丨一个故事看懂List所有用法:1年级1班的班级生活...
  13. 系统维护模式修改/etc/fstab
  14. 单片机动态从00到99C语言,单片机00~99秒表显示
  15. 电子设计之国赛准备-----(前言)
  16. matlab求两点间距离,matlab如何求一个N*2的矩阵的任意两点间的距离?
  17. 想装吗 看看装B大全
  18. IOS UIVisualEffect 蒙版的View 高斯模糊实图
  19. 数智化浪潮中,IT部门如何实现变革?
  20. 前端证券项目_头条猿辅导瓜子老虎证券等前端面经

热门文章

  1. Java中abstract类和abstract方法的相关问题
  2. CoinU基本概念分享(什么是去中心化钱包、助记词丢失怎么办等)
  3. Android PC投屏简单尝试—最终章2
  4. Go从入门到精通(一)go语言初识
  5. 安天移动安全:Janus高危漏洞深度分析
  6. 循环神经网络 (RNN)
  7. 红茶一杯话Binder
  8. java控制一次传10条数据_java 定时同步数据的任务优化
  9. nx600打印机打印设置_win7打印机共享怎么设置
  10. 交交变换电路学习笔记