链表面试题-一个链表的结点结构


Posted in 面试题 onMay 04, 2015
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;

(1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel)
Node * ReverseList(Node *head) //链表逆序
{
if ( head == NULL || head->next == NULL )
return head;
Node *p1 = head ;
Node *p2 = p1->next ;
Node *p3 = p2->next ;
p1->next = NULL ;
while ( p3 != NULL )
{
p2->next = p1 ;
p1 = p2 ;
p2 = p3 ;
p3 = p3->next ;
}
p2->next = p1 ;
head = p2 ;
return head ;
}
(2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同)
Node * Merge(Node *head1 , Node *head2)
{
if ( head1 == NULL)
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
Node *p1 = NULL;
Node *p2 = NULL;
if ( head1->data data )
{
head = head1 ;
p1 = head1->next;
p2 = head2 ;
}
else
{
head = head2 ;
p2 = head2->next ;
p1 = head1 ;
}
Node *pcurrent = head ;
while ( p1 != NULL && p2 != NULL)
{
if ( p1->data data )
{
pcurrent->next = p1 ;
pcurrent = p1 ;
p1 = p1->next ;
}
else
{
pcurrent->next = p2 ;
pcurrent = p2 ;
p2 = p2->next ;
}
}
if ( p1 != NULL )
pcurrent->next = p1 ;
if ( p2 != NULL )
pcurrent->next = p2 ;
return head ;
}
(3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。 (Autodesk)
答案:
Node * MergeRecursive(Node *head1 , Node *head2)
{
if ( head1 == NULL )
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
if ( head1->data data )
{
head = head1 ;
head->next = MergeRecursive(head1->next,head2);
}
else
{
head = head2 ;
head->next = MergeRecursive(head1,head2->next);
}
return head ;
}

Tags in this post...

面试题 相关文章推荐
宝信软件JAVA工程师面试经历
Aug 19 面试题
如何设置Java的运行环境
Apr 05 面试题
C语言基础笔试题
Apr 27 面试题
上海奥佳笔试题面试题
Nov 16 面试题
写一个在SQL Server创建表的SQL语句
Mar 10 面试题
TCP/IP的分层模型
Oct 27 面试题
以太网Ethernet IEEE802.3
Aug 05 面试题
傲盾软件面试题
Aug 17 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
Jan 06 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
Oct 17 面试题
Python面试题:如何用Python来发送邮件
Mar 15 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
计算 s=(x*y)1/2,用两个宏定义来实现
Aug 11 #面试题
计算s=f(f(-1.4))的值
May 06 #面试题
求两个数的乘积和商数,该作用由宏定义来实现
Mar 13 #面试题
请写出 float x 与"零值"比较的 if 语句
Jan 04 #面试题
求∏的近似值,直到最后一项的绝对值小于指定的数
Feb 12 #面试题
请写出 BOOL flag 与"零值"比较的 if 语句
Feb 29 #面试题
写一个用矩形法求定积分的通用函数
Nov 08 #面试题
You might like
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
解析php如何将日志写进syslog
2013/06/28 PHP
Yii清理缓存的方法
2016/01/06 PHP
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
js substr、substring和slice使用说明小记
2011/09/15 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
jQuery与Ajax以及序列化
2016/02/01 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
说说AngularJS中的$parse和$eval的用法
2017/09/14 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
WebGL学习教程之Three.js学习笔记(第一篇)
2019/04/25 Javascript
JavaScript深入V8引擎以及编写优化代码的5个技巧
2019/06/24 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python实现识别手写数字大纲
2018/01/29 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
python 遍历pd.Series的index和value
2019/11/26 Python
Python程序慢的重要原因
2020/09/04 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
UGG英国官方网站:UGG UK
2018/02/08 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
双语教学实施方案
2014/03/23 职场文书
表彰大会策划方案
2014/05/13 职场文书
沈阳故宫导游词
2015/01/31 职场文书
消防隐患整改通知书
2015/04/22 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书
python实现A*寻路算法
2021/06/13 Python