`
SunnyYoona
  • 浏览: 361582 次
社区版块
存档分类
最新评论

[华为机试练习题]49.向升序单向链表中插入一个节点

 
阅读更多

题目

描述:

输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点。
输入为空指针的情况视为异常,另外不考虑节点值相等的情况。
链表结点定义如下:
struct ListNode
{
      int       m_nKey;
      ListNode* m_pNext;
};
详细描述:

接口说明
原型:

ListNode* InsertNodeToList(ListNode* pListHead, ListNode* pInsertNode);

输入参数:

 ListNode* pListHead  单向链表
 ListNode* pInsertNode 新插入节点

输出参数(指针指向的内存区域保证有效):

ListNode* pListHead  单向链表

返回值:

正常插入节点返回链表头指针,其它异常返回空指针

练习阶段:

初级 

代码

/*---------------------------------------
*   日期:2015-07-04
*   作者:SJF0115
*   题目:向升序单向链表中插入一个节点 
*   来源:华为机试练习题
-----------------------------------------*/
#include <iostream>
#include "OJ.h"
using namespace std;

/*
功能: 
    输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点
    输入为空指针的情况视为异常,另外不考虑节点值相等的情况。

输入: 
    ListNode* pListHead  单向链表
    ListNode* pInsertNode 新插入节点

输出: 
    ListNode* pListHead  单向链表

返回: 
    正常插入节点返回链表头指针,其它异常返回空指针
*/
ListNode* InsertNodeToList(ListNode* pListHead, ListNode* pInsertNode){
    if(pListHead == NULL || pInsertNode == NULL){
        return NULL;
    }//if
    // 添加头结点
    ListNode* dummy = new ListNode();
    dummy->m_pNext = pListHead;

    ListNode* p = pListHead;
    ListNode* pre = dummy;
    while(p){
        // 插入
        if(p->m_nKey > pInsertNode->m_nKey){
            break;
        }//if
        pre = p;
        p = p->m_pNext;
    }//while

    // 插入
    pInsertNode->m_pNext = p;
    pre->m_pNext = pInsertNode;

    return dummy->m_pNext;
}
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    单向链表排序字符串(华为上机题目)

    使用单向链表对字符串进行排序,并以从小到大的顺序显示出来。

    华为机试 高级题 链表的整合

    给你一个链表,节点有值域,计数器(表示值出现的次数,初始化为1),指针域,节点的值有重复的,去除重复的值,修改相应节点的计数器。这样做的好处就是节省的很多存储空间。 对即将参加华为机考的同学有非常大的帮助...

    华为机试源代码

    华为机试代码,各种问题,链表合集,二叉树合集,背包问题等 比较难的问题,还有简单的加减乘除等

    华为机试复习资料

    华为的历年题目和复习参考代码,有链表,排序,字符串等

    华为OD机试真题-字符串重传排列2023

    如果你想要加入华为公司,那么参加华为OD机试真题是一个不错的选择。 华为OD机试真题的题目难度较高,需要应聘者具备扎实的编程基础和较强的逻辑思维能力。在华为OD机试真题中,应聘者需要解决一系列的算法和数据...

    华为机试题目

    里面是华为机试题目,给想去华为的人分享下。大约十分三类题目:链表题字符串题数据排序题。

    华为接入控制链表配置

    接入控制链表 ACL接入控制链表 ACL

    google百度北电华为腾讯试题及面试

    1.连接两个单向链表,返回排序后的结果。 2.一个保存有10000个URL的文本文件,删除其中相同的URL。 3.将9个石子放在9x9的方格中,要求同行、同列、45度上无两个石子。 智力题: 。。。。。 网易笔试题 腾讯试题...

    华为机考100例java.rar

    用java语言总结了华为机考100道题,包括递归,堆栈,队列,回溯,数组,字符串,链表,动态规划,DFS算法等,帮助您们顺利通过华为机考。

    华为leetcode-ProgrammingExercises:Leetcode和NewCoder练习

    计算字符串最后一个单词的长度 code_2.org 计算字符个数 code_3.org 1. Two Sum code_4.org Add Two Numbers code_5.org Longest Substring Without Repeating Characters code_6.org 二进制链表转整数 code_7.org ...

    华为软件硬件面试笔试题目(附答案)

    已知一个单向链表的头,请写出删除其某一个结点的算法

    C++面试题 华为面试题的汇总

    1、一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息。 2、实现一个函数,把一个字符串中的字符从小写转为大写。 ...

    2023年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总 .zip

    1.1.1 如何实现一个高效的单向链表逆序输出? 1.1.2 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位 1.1.3 给定一个二叉搜索树(BST),找到树中第 K 小的节点 1.1.4 LRU缓存机制 1.1.5 关于...

    华为编程开发规范与案例

    近日在CDB并行测试中发现一个问题:我们需要的小区负荷话统结果总是为零,开始还以为小区负荷太小,于是加大短消息下发数量,但还为零,于是在程序中加入测试代码,把收到的数据在BAM上打印出来, 结果打印出来的...

    cpp-HuaweiLiteOS华为物联网操作系统

    华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。本项目属于华为物联网操作系统Huawei LiteOS基础内核源码,现有代码支持任务调度,内存管理,中断机制,队列管理,事件管理,IPC机制,时间管理,软...

    华为java经典面试题大总结

    1 面向对象的特征有哪些方面 ...通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

    出圈问题的C链表实现

    M个人围成一圈报数,数到N(1)的倍数或包含N这个数字时出圈,问剩下的最后一个人在原来的位置是多少? 报数规则 1、从第一个人开始报数为1,下一个人报数为上一个人报数加1 2、报数的最大值为2000,如果报数超过...

    若干源程序资料12.rar

    2012-06-11 20:57 2,442 单向链表.txt 2012-06-11 21:10 10,962 单片机控制的仓库粮食害虫检测报警系统.rar 2012-06-11 21:44 0 哈希表实例.zip 2012-06-11 21:13 1,001,214 坦克游戏源代码.zip 2012-06-11 21:17 ...

    华为常见笔试题大全常考知识点

    华为常见笔试题大全,常考知识点如static,IP地址,数据结构,链表,指针,字符串常见函数的实现,文件操作等

    华为机考知识点总结1

    华为机考知识点总结1

Global site tag (gtag.js) - Google Analytics