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


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...

面试题 相关文章推荐
你常见到的runtime exception
Sep 05 面试题
函数指针的定义是什么
Aug 14 面试题
阿尔卡特(中国)的面试题目
Aug 20 面试题
如何找出EMP表里面SALARY第N高的employee
Dec 05 面试题
杭州龙健科技笔试题.net部分笔试题
Jan 24 面试题
2019年分享net面试的经历和题目
Aug 07 面试题
STP协议的主要用途是什么?为什么要用STP
Dec 20 面试题
linux下进程间通信的方式
Dec 23 面试题
几个Linux面试题笔试题
Dec 01 面试题
Java程序员常见面试题
Jul 16 面试题
shell变量的作用空间是什么
Aug 17 面试题
计算 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隐藏实际地址的文件下载方法
2015/04/18 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
2012/06/15 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
nodejs实现简单的gulp打包
2017/12/21 NodeJs
vue自动化表单实例分析
2018/05/06 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
python画双y轴图像的示例代码
2019/07/07 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
python中re模块知识点总结
2021/01/17 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
酒店应聘自荐信
2013/11/09 职场文书
服务标兵事迹材料
2014/05/04 职场文书
大学优秀班集体申报材料
2014/05/23 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
政风行风整改方案
2014/10/25 职场文书
销售员岗位职责
2015/02/10 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
详解Vue的列表渲染
2021/11/20 Vue.js
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL