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


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

面试题 相关文章推荐
String这个类型的class为何定义成final?
Nov 13 面试题
SQL面试题
Dec 09 面试题
简单说下OSPF的操作过程
Aug 13 面试题
Linux开机引导的步骤是什么
Oct 19 面试题
Linux机考试题
Jul 17 面试题
Linux中如何用命令创建目录
Dec 02 面试题
海量信息软件测试笔试题
Aug 08 面试题
50道外企软件测试面试题
Aug 18 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
May 02 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
Sep 26 面试题
Java语言程序设计测试题改错题部分
Jul 22 面试题
计算 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 URL跳转代码 减少外链
2011/06/25 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
php控制文件下载速度的方法
2015/03/24 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
document.documentElement && document.documentElement.scrollTop
2007/12/01 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
JS实现移动端整屏滑动的实例代码
2017/11/10 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
理解Python中函数的参数
2015/04/27 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
Python对切片命名的实现方法
2018/10/16 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
体育专业个人的求职信范文
2013/09/21 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
低碳环保演讲稿
2014/08/28 职场文书
学习三严三实心得体会
2014/10/13 职场文书
2014年团支部工作总结
2014/11/17 职场文书
成绩报告单家长评语
2014/12/30 职场文书
服务员岗位职责
2015/02/03 职场文书
毕业证明模板
2015/06/19 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
Nginx 常用配置
2022/05/15 Servers