zoukankan      html  css  js  c++  java
  • 求链表中间节点的值,求链表倒数第K个节点,检测链表的环

    int loop(struct Node* head){
        struct Node* p1 = head;
        struct Node* p2 = head;
        int i = 0;
        while(p1 && p2){
            i++;
            if(i!=1){
                if(p1->value == p2->value){
                    printf("%d\n",i);
                    return 1;
                }    
            }
            p1 = p1->next;
            if(p2->next != null){
                p2 = p2->next->next;    
            }else{
                return 0;
            }
            
        }
        printf("%d\n",i);
        return 0;
    }
    
    int middle(struct Node* head){
        struct Node* p1 = head;
        struct Node* p2 = head;
        while(p2){
            p2 = p2->next;
            if(p2 != null){
                p1 = p1->next;
                p2 = p2->next;
            }
        }
        return p1->value;
    }

    int lastK(struct Node* head,int k){
        struct Node* p1 = head;
        struct Node* p2 = head;
        while(k-->0){
            p2 = p2->next;
        }
        while(p2){
            p1 = p1->next;
            p2 = p2->next;
        }
        return p1->value;
    } 
    
    
    
    int main(int argc,char *argv[]){
        /**
        struct Node* head = create();
        print(head);
        
        struct Node* x = malloc(sizeof(struct Node));
        x->value = 1;
        delete(x,&head);
        print(head);
        **/
        struct Node* p1 = malloc(sizeof(struct Node));
        p1->value = 1;
        struct Node* p2 = malloc(sizeof(struct Node));
        p2->value = 2;
        struct Node* p3 = malloc(sizeof(struct Node));
        p3->value = 3;
        struct Node* p4 = malloc(sizeof(struct Node));
        p4->value = 4;
        struct Node* p5 = malloc(sizeof(struct Node));
        p5->value = 5;
        p1->next = p2;
        p2->next = p3;
        p3->next = p4;
        p4->next = p5;
        p5->next = null;
        printf("中间节点数值:%d\n",middle(p1));
       printf("倒数第一个节点数值:%d\n",lastK(p1,2));
    return 0;    
    }
  • 相关阅读:
    简单伪类
    购物网页css
    「WC2020T2」猜数
    ARC 103
    Codeforces 1198F
    ZJOI2019二试游记
    ZJOI2019一试游记
    「WC2015」未来程序
    「CodeForces Round #545 Div2」划水记
    「CF1116」Microsoft Q# Coding Contest
  • 原文地址:https://www.cnblogs.com/23lalala/p/2703684.html
Copyright © 2011-2022 走看看