• c带头结点的单链表逆置


    头插法
    顺序遍历单链表,将遍历的每个节点插到头结点后面。
    /*
    带头结点的单链表逆置 
    */
    #include<stdio.h>
    #include<stdlib.h>
    struct node{
        int data;
        struct node* next;
    };
    struct node* creat(){    //构造单链表 
        int i;
        struct node* head;
        struct node* q;
        head = (struct node*)malloc(sizeof(struct node));
        head->next = NULL;
        q = head;
        for(i = 0;i < 20;i++){
            struct node* p = (struct node*)malloc(sizeof(struct node));
            p->data = i;
            q->next = p;
            q = p;
            q->next = NULL; 
        }
        head->data = i;        //头结点存储节点个数 
        output(head);    //打印 
        return head;
    }
    void output(struct node* head){
        struct node* p;
        p = head;
        while(p != NULL){
            printf("%d ",p->data);
            p = p->next;
        }
        printf("
    ");
    }
    struct node* ReverseLink(struct node *head){    
    //单链表逆置函数,返回头指针 
        if((head == NULL) || (head->next == NULL))    
            return head;    
    //如果只有头节点或者只有一个头结点和一个数据节点,不用逆置 
        struct node* cur;
        struct node* temp;
        cur = head->next->next;
        head->next->next = NULL;
          while(cur){
              temp = cur->next;
              cur->next=head->next;
              head->next=cur;
              cur = temp;
          }
        return head;
    }
    int main(){
        struct node* head = creat();
        head = ReverseLink(head);
        output(head);
    }
    View Code
  • 相关阅读:
    【转】wpa_supplicant与wpa_cli之间通信过程
    CSS Hack
    HTML5测试(二)
    HTML5测试(一)
    百分号编码(URL编码)
    DOM事件处理函数
    JS数组
    JS中for循环嵌套
    Codecombat 游戏攻略(计算机科学三)2
    Codecombat 游戏攻略(计算机科学三)
  • 原文地址:https://www.cnblogs.com/jiaoqiang/p/8530127.html
Copyright © 2020-2023  润新知