zoukankan      html  css  js  c++  java
  • 链表反转

    `//==================

    // Name : 链表反转.cpp
    // Author : Gaotong
    // Version :
    // Copyright : www.acmerblog.com
    // Description : Hello World in C++, Ansi-style
    //============================================================================
    #include <stdio.h>
    #include <stdlib.h>

    /* 链表节点 /
    struct node
    {
    int data;
    struct node
    next;
    };

    /* 反转单链表. 分别用3个指针,指向前一个,当前,下一个 /
    static void reverse(struct node
    * head_ref)
    {
    struct node* prev = NULL;
    struct node* current = head_ref;
    struct node
    next;
    while (current != NULL)
    {
    next = current->next;
    current->next = prev;
    prev = current;
    current = next;
    }
    *head_ref = prev;
    }

    /* 添加数据。 头部插入 /
    void push(struct node
    * head_ref, int new_data)
    {
    struct node* new_node =
    (struct node*) malloc(sizeof(struct node));

    new_node->data  = new_data;
    new_node->next = (*head_ref);
    (*head_ref)    = new_node;
    

    }

    /* 打印链表 */
    void printList(struct node *head)
    {
    struct node *temp = head;
    while(temp != NULL)
    {
    printf("%d ", temp->data);
    temp = temp->next;
    }
    }

    int main()
    {
    struct node* head = NULL;

     push(&head, 20);
     push(&head, 4);
     push(&head, 15);
     push(&head, 85);
     push(&head, 60);
     push(&head, 100);
    
     printList(head);
     reverse(&head);
     printf("
     Reversed Linked list 
    ");
     printList(head);
    

    }`

  • 相关阅读:
    用智慧明辨之
    做一个成功的软件架构师需要哪些素质?
    如何成为一名优秀的产品经理
    项目管理中的冲突管理
    .Net 缓存依赖详解
    从程序制作到构架制作
    如何做好一名软件团队的领导者
    需求变更的代价
    页面缓存的实现
    项目风险盘点
  • 原文地址:https://www.cnblogs.com/sanjianghuiliu/p/6512326.html
Copyright © 2011-2022 走看看