自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 142、环形链表

对于第一问可以用快慢指针解决,如果有环,快慢指针总会相遇对于第二问,详细原理看代码随想录,具体做法就是设定两个指针A,B,指针A从head出发,B从快慢指针相遇处出发,两个指针相遇的地方就是环的入口节点。

2023-04-18 22:57:26 35 1

原创 05二叉搜索树

1、树相关的概念 节点: 树上的每一个元素所在的节点 根节点: 最顶部的节点,如1节点,一棵树最多只有一个根节点 父节点: 一个节点上一层的与该节点连接的节点 子节点: 一个节点下一层的节点 兄弟节点: 同一层的节点 边: 连接父节点和子节点的连线 节点的度: 一个节点子树的个数 树的度: 所有节点度中最大的值 叶子节点: 度为0的节点 层数: 根节点在第一次,根节点的子节点在第二层,以此类推 节点的深度: 从根节点到当前节点唯一路径所经过的节点总数 节点的高度: 从当前节点到最远叶子节点所经历的节点总数

2020-07-04 18:37:07 166

原创 04栈和队列

1、栈 1.1、概念 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。 向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素; 从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。 栈数据结构遵循的是先进后出原则。 只有栈顶部的元素对外可见。 1.2、怎样实现栈数据结构 在Java中的栈是继承Vector来实现的,Vector与ArrayL

2020-07-01 19:56:51 114 1

原创 03链表

1、链表 1.1、概念 数据存储在内存中一个个节点中,这些节点的内存地址不连续,是随机分散在内存中的,有头节点和尾节点,可以认为头节点的索引为0,头节点存储着下一个节点,也就是索引为1的节点的内存地址,索引为1的节点又存储下一个节点的内存地址,以此类推,尾节点中存储的内存地址为null。 1.2、常见链表 单向链表 双向链表 单向循环链表 在单向链表的基础上,尾节点的next指向头节点 双向循环链表 在双向链表的基础上,头节点的prev指向尾节点,尾节点的next指向头节点

2020-06-27 19:58:25 104

原创 02动态数组

1、动态数组是什么 动态数组就是可以自动扩容的数组,元素可以自由地被添加/插入到相应的位置,也可以很方便地移除某个位置上的元素。在Java中的ArrayList集合就是一个动态数组。 2、为什么要使用动态数组 普通数组的缺点 数组一旦创建出来,它的容量就确定了,无法再改变。 数组中只能存储一种数据类型。 数据的添加、插入、移除都不方便 动态数组的优点 可以自动扩容 可以自定义存储的数据类型 可以自由地添加、插入、移除数组中的某个元素 3、通过封装一个集合类来实现动态数组 public cla

2020-06-24 19:27:09 1211

原创 01开启算法世界的大门

1.算法是什么 算法是解决某种问题的办法,对于一个问题可以有多种不同的算法,编程语言只是实现算法的一种方式。 例如一道简单的应用题:小明有10个糖,小红有2个糖,小刚有3个糖,问小明和小红的糖的总数比小刚多多少? 如果用数学算式来表示就应该是 小明小红总共:10+2=12(个) 12-3=9(个) 答:他们总共比小刚多9个糖 如果用编程语言来表达就是 public int count(int ming, int hong, int gang){ int sum = ming + hong;

2020-06-23 20:29:05 184

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除