zoukankan      html  css  js  c++  java
  • 剑指offer--面试题15--相关

    感受:清晰的思路是最重要的!!!

    题目:求链表中间节点

    ListNode* MidNodeInList(ListNode* pHead)
    {
        if(pHead == NULL)
            return NULL;
    
        ListNode* pNode1 = pHead;
        ListNode* pNode2 = pHead;
    
        unsigned int step = 1;
        while(pNode2->m_pNext != NULL)
        {
            pNode2 = pNode2->m_pNext;
            step++;
            if((step & 0x1) == 1)
                pNode2 = pNode2->m_pNext;
        }
    
        return pNode2;
    }

    依然两个指针进行一次遍历即可。。。:一个向前走两步,另一个向前走一步

    针对链表问题,若一个指针的遍历无法解决问题,则可以尝试用两个指针解决,基本规则为:让其中一个指针遍历的快些,或者先向前运动k步

    清醒时做事,糊涂时读书,大怒时睡觉,独处时思考; 做一个幸福的人,读书,旅行,努力工作,关心身体和心情,成为最好的自己 -- 共勉
  • 相关阅读:
    网络流24题
    可持久化Treap
    后缀平衡树
    bzoj2561-最小生成树
    poj3164-Command Network
    最小树形图
    hdu2121-Ice_cream’s world II
    线性处理逆元
    bzoj3992-序列统计
    JavaScript 类型转换
  • 原文地址:https://www.cnblogs.com/hello-yz/p/3252655.html
Copyright © 2011-2022 走看看