当前位置: 首页 > news >正文

微软等公司数据结构+算法面试100题--链表

1.(原第7题)
----------------------------------------------
微软亚院之编程判断俩个链表是否相交
给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。
为了简化问题,我们假设俩个链表均不带环。
问题扩展:
1.如果链表可能有环列?
2.如果需要求出俩个链表相交的第一个节点列?


2.(原第13题)
----------------------------------------------
题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
链表结点定义如下:   
struct ListNode
{
  int m_nKey;
  ListNode* m_pNext;
};


3.(原第24题)
----------------------------------------------
链表操作
(1)单链表就地反向
(2)合并排好序的链表


4.(原第42题)
----------------------------------------------
请修改append函数,利用这个函数实现:
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5
另外只能输出结果,不能修改两个链表的数据。


5.(原第58题)
----------------------------------------------
从尾到头输出链表。
题目:输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};


6.(原第60题)
----------------------------------------------
在 O(1)时间内删除链表结点。
题目:给定链表的头指针和一个结点指针,在 O(1)时间删除该结点。链表结点的定义如下:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
函数的声明如下:
void DeleteNode(ListNode* pListHead, ListNode* pToBeDeleted);


7.(原第62题)
----------------------------------------------
找出链表的第一个公共结点。
题目:两个单向链表,找出它们的第一个公共结点。
链表的结点定义为:
struct ListNode
{
int m_nKey;
ListNode* m_pNext;
};
分析:这是一道微软的面试题。微软非常喜欢与链表相关的题目,
因此在微软的面试题中,链表出现的概率相当高。


8.(原第76题)
----------------------------------------------
复杂链表的复制
题目:有一个复杂链表,其结点除了有一个 m_pNext 指针指向下一个结点外,还有一个 m_pSibling 指向链
表中的任一结点或者 NULL。其结点的 C++定义如下:
struct ComplexNode
{
int m_nValue;
ComplexNode* m_pNext;
ComplexNode* m_pSibling;
};
下图是一个含有5 个结点的该类型复杂链表。
图中实线箭头表示 m_pNext 指针,虚线箭头表示 m_pSibling 指针。为简单起见,指向 NULL 的指针没有画
出。请完成函数 ComplexNode* Clone(ComplexNode* pHead),以复制一个复杂链表。
分析:在常见的数据结构上稍加变化,这是一种很新颖的面试题。
要在不到一个小时的时间里解决这种类型的题目,我们需要较快的反应能力,
对数据结构透彻的理解以及扎实的编程功底。


9.(原第77题)
----------------------------------------------
关于链表问题的面试题目如下:
1.给定单链表,检测是否有环。
2.给定两个单链表(head1, head2),检测两个链表是否有交点,如果有返回第一个交点。
3.给定单链表(head),如果有环的话请返回从头结点进入环的第一个节点。
4.只给定单链表中某个结点 p(并非最后一个结点,即 p->next!=NULL)指针,删除该结点。
5.只给定单链表中某个结点 p(非空结点),在 p 前面插入一个结点。


10.(原第78题)
----------------------------------------------
链表和数组的区别在哪里?
分析:主要在基本概念上的理解。
但是最好能考虑的全面一点,现在公司招人的竞争可能就在细节上产生,谁比较仔细,谁获胜的机会就大。


11.(原第79题(1))
----------------------------------------------
编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?


12.(原第89题(1))
----------------------------------------------
2005年11月15日华为软件研发笔试题。实现一单链表的逆转。


13.(原第90题(3))
----------------------------------------------
判断单链表中是否存在环。


14.(原第97题(2))
----------------------------------------------
微软
在链表里如何发现循环链接?


15.(原第98题(6))
----------------------------------------------
微软
怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?


转载于:https://www.cnblogs.com/iamzhaiwei/archive/2012/04/28/2689673.html

相关文章:

  • UIPickerView的使用
  • 目标板UBI工具交叉编译
  • 一个web项目web.xml的配置中context-param配置作用
  • Puppet安装dashboard
  • 非常有用的并发控制-循环栅栏CyclicBarrier
  • PHP简易的缓存实现思路
  • Ubuntu下安装Cacti+rrdtool监控Windows
  • 整理:IE6浏览器下容器boder消失的解决办法
  • 有向无环图
  • linux服务器集群运维经验
  • jsbeautifier + JScript.NET/JavaScript 编程实现 JavaScript、HTML、CSS 代码格式化脚本命令行工具 并集成到 EditPlus...
  • Python实现简单接口自动化测试
  • Codeforces Round #428 (Div. 2)
  • 【转】搜索算法的剪枝优化
  • vue.js过渡效果之--javascript钩子
  • docker python 配置
  • ES10 特性的完整指南
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS基础之数据类型、对象、原型、原型链、继承
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • PAT A1120
  • PHP那些事儿
  • SpriteKit 技巧之添加背景图片
  • vue 配置sass、scss全局变量
  • Vue--数据传输
  • vue自定义指令实现v-tap插件
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 大快搜索数据爬虫技术实例安装教学篇
  • 番外篇1:在Windows环境下安装JDK
  • 算法-插入排序
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 详解NodeJs流之一
  • scrapy中间件源码分析及常用中间件大全
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #### go map 底层结构 ####
  • #13 yum、编译安装与sed命令的使用
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (52)只出现一次的数字III
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (一)kafka实战——kafka源码编译启动
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (状压dp)uva 10817 Headmaster's Headache
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net framework 4.0中如何 输出 form 的name属性。
  • .net framework4与其client profile版本的区别
  • .NET 发展历程