首页 > 其他分享 >循环链表

循环链表

时间:2023-01-30 20:12:04浏览次数:58  
标签:结点 next 链表 循环 指针 Tb Ta

循环链表

一种头尾相接的链表,表中最后一个结点的指针域指向头结点 ,整个链表形成一个环即没有NULL指针,因此遍历操作时,终止条件是否等于头指针

优:从表中任一结点出发,均可找到表中其他结点


头指针表示单循环链表:

  • 找a1的时间复杂度:O(1)
  • 找an的时间复杂度:O(n)

当表的操作常常在首尾进行时可使用尾指针表示单循环链表

  • a1存储位置是:r->next->next;时间复杂度:O(1)
  • an存储位置是:r;时间复杂度:O(1)

带尾指针循环链表的合并

image

  1. p存表头结点:p=Ta->next;
  2. Tb表头连Ta表尾:Ta->next=Tb->next->next;
  3. 释放Tb表头结点:free(Tb->next);
  4. 修改指针:Tb->next=p;
LinkList Connect(LinkList Ta,LinkList Tb){
    LinkList p;
    p=Ta->next;
    Ta->next=Tb->next->next;
    free(Tb->next);
    Tb->next=p;
    return Tb;
}

时间复杂度是O(1)

标签:结点,next,链表,循环,指针,Tb,Ta
From: https://www.cnblogs.com/yuanyu610/p/17077144.html

相关文章

  • 1669. 合并两个链表
    1669.合并两个链表題解:模拟链表操作/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode......
  • 单链表
    线性表的链式存储线性表的链式表示又称为非顺序映像或链式映像结点在存储器中位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻;链表中的逻辑次序和物理次序不一定......
  • 封装用于循环播放展示一组内容的组件
    <template><divv-if="show"class="command-code":style="{color:color}"><divclass="command-code-box"ref="boxRef":style="{width:contentWidth}">......
  • 114. 二叉树展开为链表
    问题描述https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/解题思路这个题目,用一个数组就能很好的解决。但空间复杂度是O(n).题目中给的......
  • JS几种常见循环
    常见循环,主要包括有for,for…in,for…of,forEach普通for  switch 遍历数组varnums=[11,12];for(vari=0;i<nums.length;i++){console.info(nums[i]);}/......
  • 【参考答案】java基础练习:循环结构(while、do...while、for、break、continue、return
    while while实现:输出比i(i=5)小的正整数packagecom.qzcsbj;publicclassTest{publicstaticvoidmain(String[]args){inti=5;while(--i>0){......
  • 【6】Python3循环语句之while,for循环
    1.循环:有条件地重复地做一件事,每一次做的事情不同但类似在Python中,循环结构分为while和for两种。while判断条件:执行语句……执行语句可以是单个语句或语句块。判断......
  • 9.4 SQL Server循环
    SQLServer循环目录SQLServer循环简介WHILE示例BREAK简介示例CONTINUE简介示例简介WHILE语句是一个控制流语句,它允许重复执行语句块,只要指定的条件为TRUE。WHILE语法......
  • LeetCode:1669. 合并两个链表
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListN......
  • LeetCode-21.合并两个有序链表
    21.合并两个有序链表(MergeTwoSortedLists)将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4......