zoukankan      html  css  js  c++  java
  • 单链表的逆置

    单链表的逆置是面试官非常青睐的题,这个题可以看出面试者对链表和指针的操作。
    而且问题也很好描述,一句话就表达出了自己的题。
    ------------------------------------------------------------------------------------------------------
    一、算法思想:(头插法)
    <1>,将源链表分为链表头和链表实体。
    <2>,将链表实体节点用头插法依次插入到链表头中。
    <3>,如果链表实体插完则算法结束,否则转到<2>.

    ------------------------------------------------------------------------------------------------------

    二、算法的实现:

        void reverse(struct node*head)
        {
                if (head== NULL)
                    return ;
                struct node *p = head->next,*pnext= NULL;
                head->next= NULL;
                while (p !=NULL) {
                        pnext = p->next;
                        p->next= head->next;
                        head->next= p;
                        p = pnext;
                }
                return ;
        } 

    ----------------------------------------------------------------------------------------------------------
    三、算法实现前后都要在心中进行单元测试。
    case 1:假如传入的指针为NULL时程序是否会崩溃。
    case 2:假如传入的链表只有一个节点则程序是否会出错。
    case 3:任意传入的链表是否会逆置。

    在编码前心中如果就有了这些测试用例,估计你编写代码的时候就会减少出现的问题。
    编码完后,然后再使用这些测试用例来检验你的函数是否正确。

    很多时候面试官检验你的代码写的正确与否,就是用的早已准备好的测试用例来建议的
    如果你事先就用测试用例验证了,那就可以保证万无一失了。
  • 相关阅读:
    Java SE 5.0(JDK 1.5)新特性
    第22章—开启HTTPS
    第21章—websocket
    IE8Get请求中文不兼容:encodeURI的使用
    JavaScript自定义函数
    disable的错误使用
    20190401-记录一次bug ConstraintViolationException
    new Date()的浏览器兼容性问题
    单例模式(转)
    SQL Server使用一个语句块批量插入多条记录的三种方法和union和union all区别
  • 原文地址:https://www.cnblogs.com/haxianhe/p/9271081.html
Copyright © 2011-2022 走看看