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


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

面试题 相关文章推荐
比较基础的php面试题及答案-填空题
Apr 26 面试题
10条PHP编程习惯
May 26 面试题
PHP面试题及答案一
Jun 18 面试题
Java如何格式化日期
Aug 07 面试题
上海天奕面试题笔试题
Apr 19 面试题
请解释在new与override的区别
Oct 29 面试题
Ref与out有什么不同
Nov 24 面试题
Linux不知道文件后缀名怎么判断文件类型
Apr 26 面试题
Python的两道面试题
Jun 29 面试题
Python里面如何拷贝一个对象
Feb 17 面试题
十一个高级MySql面试题
Oct 06 面试题
介绍一下如何优化MySql
Dec 20 面试题
计算 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通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
Yii2 rbac权限控制之rule教程详解
2016/06/23 PHP
PHP反射API示例分享
2016/10/08 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
python3写爬取B站视频弹幕功能
2017/12/22 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Python Django搭建网站流程图解
2020/06/13 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
Python try except else使用详解
2021/01/12 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
10个顶级Python实用库推荐
2021/03/04 Python
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
九年级物理教学反思
2014/01/29 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
会议营销主持词
2015/07/03 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫