zoukankan      html  css  js  c++  java
  • 求单链表倒数第m个结点

    问题:求单链表倒数第m个结点,要求不准求链表的长度,也不许对链表进行逆转

    解:设置两个指针p和q,p、q指向第一个结点。让p先移动到链表的第m个结点,然后p和q同时向后移动,直到p首先到达尾结点。此时,q结点落后p (m-1)个结点,q所指向的结点就是单链表的倒数第m个结点。

    算法实现:

     1 linkNode *searchLinkM(linkNode *link,int m)
     2 {
     3 linkNode *p=link->next;
     4 if(p!=NULL&m>0)
     5 {
     6 for(int i=1;i<m;i++)
     7 {
     8 p=p->next;
     9 if(p==NULL)
    10 {
    11 cout<<"该链表没有倒数第m个结点"<<edl;
    12 return NULL;
    13 }
    14 }
    15 linkNode *q=link->next;
    16 while(p->next!=NULL)
    17 {
    18 p=p->next;
    19 q=q->next;
    20 }
    21 return q;
    22 }
  • 相关阅读:
    K8S之traefik高级特性
    docker nginx-php容器镜像瘦身优化
    Dubbo-服务消费者初始化
    ThreadLocal 源码分析
    JVM 对象分配规则
    JVM GC 机制
    LockSupport
    自旋锁
    CAS
    Synchronized 监视器锁
  • 原文地址:https://www.cnblogs.com/cynthia-dcg/p/6008687.html
Copyright © 2011-2022 走看看