• 算法训练篇(4)


    1.判断一个链表是否存在环,例如下面这个链表就存在一个环:例如N1->N2->N3->N4->N5->N2就是一个有环的链表

    c语言版:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 struct link{
     5     int data;
     6     struct link *next;
     7 };
     8 
     9 int isLoop(struct link* head){
    10     struct link* p1,*p2;
    11     if(head == NULL || head->next == NULL)
    12         return 0;
    13     p1 = head;
    14     p2 = head;
    15     do{
    16         p1 = p1->next;
    17         p2 = p2->next->next;
    18     }while(p1 != NULL && p2 != NULL && p1 != p2);
    19     if(p1 == p2)
    20         return 1;
    21     else
    22         return 0;
    23 
    24 }
    25 
    26 int main()
    27 {
    28     
    29 }
    View Code

    2.单向链表的反转

    c语言版:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 struct link{
     5     int data;
     6     struct link *next;
     7 };
     8 
     9 void reserve(struct link* head){
    10     if(head == NULL || head->next == NULL)
    11         return;
    12     struct link * pre,*nex,*p;
    13     pre = head;
    14     p = head->next;
    15     nex = head->next->next;
    16     do{
    17         p->next = pre;
    18         pre->next = NULL;
    19         pre = p;
    20         p = nex;
    21         nex = nex->next;
    22     }while(nex != NULL);
    23     head = p;
    24 
    25 }
    26 
    27 int main()
    28 {
    29 
    30 }

    c语言(递归法):

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 struct link{
     5     int data;
     6     struct link *next;
     7 };
     8 //递归法
     9 struct link* reserve(struct link* p,struct link* head){
    10     if(p == NULL || p->next == NULL){
    11         head = p;
    12     }
    13     else{
    14         struct link* temp = reserve(p->next,head);
    15         temp->next = p;
    16         return p;
    17     }
    18 }
    19 
    20 int main()
    21 {
    22 
    23 }
  • 相关阅读:
    react-router-dom
    react详解state、props、refs
    vuex
    canvas与svg相关介绍与区别
    js改变标签属性与js事件
    Typescript基础类型
    es6
    js模块化的3种规范
    webpack
    react-infinite-scroller使用
  • 原文地址:https://www.cnblogs.com/YESheng/p/3900031.html
Copyright © 2020-2023  润新知