美文网首页
链表复习(二)

链表复习(二)

作者: qratosone | 来源:发表于2016-03-01 00:03 被阅读0次

删除链表函数:

void delete_node(int index){
       if(head==NULL){
           return;
       }
       Node* current_node=head;
       int count=0;
       if(index==0){
           head=head->next;
           delete current_node;
           return;
       }

       while(current_node->next!=NULL&&count<index-1){
           current_node=current_node->next;
           count++;
       }
       if(count==index-1&&current_node->next!=NULL){
           Node* delete_node=current_node->next;
           current_node->next=delete_node->next;
           delete delete_node;
           
       }
   }

反转链表函数:

void reverse(){
        if(head==NULL){
            return;        
        }
        Node *next_node,*current_node;
        current_node=head->next;
        head->next=NULL;
        while(current_node!=NULL){
            next_node=current_node->next;
            current_node->next=head;
            head=current_node;
            current_node=next_node;
        }
    }

循环链表:

注意head代表头结点,也代表尾节点

void insert(Node *node, int index) {
       if (head == NULL) {
           head = node;   //当只有一个节点时head的next就是head自己
           head->next = head;
           return;
       }
       if (index == 0) {
           node->next = head->next; //在head后插入
           head->next = node;
           return;
       }
       Node *current_node = head->next;
       int count = 0;
       while (current_node != head && count < index – 1) {
           current_node = current_node->next;
           count++;
       }
       if (count == index – 1) {
           node->next = current_node->next;
           current_node->next = node;
       }
       if (node == head->next) {//如果把node插在了head后面则将head设置为node
           head = node;
       }
   }

相关文章

  • 链表复习(二)

    删除链表函数: 反转链表函数: 循环链表: 注意head代表头结点,也代表尾节点

  • 单链表复习

    最近闲来无事,将之前用c语言实现的链表改用Java实现了一下,一直没时间整理,今天整理一下发出来,大家共同学习。 ...

  • 链表复习(一)

    链表性质——此处略 简单的链表基本结构(cpp): 实现链表插入函数——参数为Node*和int,分别表示要插入的...

  • Java实现静态链表

    今天复习到静态链表。自己简单实现了静态链表的基本操作,记录一下

  • 算法小专栏:选择排序

    本篇将重点介绍选择排序,在讲解选择排序之前,我们先复习一下数组和链表等知识。 一、数组 or 链表? 数组和链表作...

  • 单链表相关学习笔记(C语言)

    以此文记录学习单链表的相关知识,以备后续回顾复习。完整代码:链表学习相关的笔记和代码(C 语言) 一、单链表相关说...

  • InnoDB 索引

    链表 -> 二叉查找树 -> 平衡二叉树 -> B树 -> B+树 链表:层级等于链表长度二叉查找树:链表优化,...

  • 一些链表的经典题型

    很久没有接触到链表,最近拉出来复习和总结下,并总结了一些常见的链表的题型。本文主要使用Java进行测试。 链表主要...

  • 数据结构-单向链表

    一、线性表 线性表可以分为: 顺序表(数组) 链表(单向链表、双向链表、循环链表) 二、链表 链表是一种链式存储的...

  • 链表、二叉树、栈、队列的实现

    目录 1.链表 链表 链表定义 2.创建链表(尾插法) 二叉树 栈 队列

网友评论

      本文标题:链表复习(二)

      本文链接:https://www.haomeiwen.com/subject/tiigkttx.html