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


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里面的异常
Apr 24 面试题
什么是数组名
May 10 面试题
华三通信H3C面试题
May 15 面试题
ShellScript面试题一则-ShellScript编程
Mar 05 面试题
Linux Interview Questions For software testers
Jun 02 面试题
什么是虚拟内存?虚拟内存有什么优势?
Feb 19 面试题
GWebs公司笔试题
May 04 面试题
Python如何实现单例模式
Jun 03 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
如何用Java判断一个文件或目录是否存在
Nov 19 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
Aug 02 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
Apr 24 面试题
计算 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
PHP获取MAC地址的函数代码
2011/09/11 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
PHP简单选择排序算法实例
2015/01/26 PHP
php常用数组函数实例小结
2016/12/29 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
JavaScript事件学习小结(一)事件流
2016/06/09 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python编程求质数实例代码
2018/01/31 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python中如何使用虚拟环境
2020/10/14 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
网站域名和主机:Domain.com
2019/04/01 全球购物
澳大利亚家居用品零售商:Harris Scarfe
2020/10/10 全球购物
教育专业个人求职信
2013/12/02 职场文书
2014年扶贫工作总结
2014/11/18 职场文书
小学英语课教学反思
2016/02/15 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL