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


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如何对用户密码进行加密
Jul 31 面试题
PHP面试题集
Dec 18 面试题
Yahoo-PHP面试题1
Jul 20 面试题
DBA数据库管理员JAVA程序员架构师必看
Feb 07 面试题
武汉英思工程科技有限公司–ORACLE面试测试题目
Apr 30 面试题
什么是聚集索引和非聚集索引
Jan 17 面试题
西安众合通用.net笔试题
Mar 18 面试题
如何开启linux的ssh服务
Feb 14 面试题
介绍一下Linux文件的记录形式
Sep 29 面试题
ShellScript面试题一则-ShellScript编程
Jun 24 面试题
若干个Java基础面试题
May 19 面试题
J2EE模式面试题
Oct 11 面试题
计算 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
快速配置PHPMyAdmin方法
2008/06/05 PHP
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
a标签click和href执行顺序探讨
2014/06/23 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
浅谈js中的this问题
2017/08/31 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
Python中使用SAX解析xml实例
2014/11/21 Python
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
暑期培训班招生方案
2014/08/26 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
秋菊打官司观后感
2015/06/03 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
Win10 Anaconda安装python-pcl
2022/04/29 Servers