首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构与算法
JavaHall
创建于2022-12-26
订阅专栏
本专栏涵盖数据结构与算法基本教程以及有趣的题目解析,更包含一些用算法实现的骚操作。
等 5 人订阅
共50篇文章
创建于2022-12-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
非递归方式实现二叉树的先序、中序、后序遍历
前言 在之前的文章里介绍过如何使用递归的方式来实现二叉树的先序、中序、后序遍历,这篇文章来介绍下如何采用非递归的方式实现二叉树的先序、中序、后序遍历。
判断是否是搜索二叉树
前言 本文将介绍什么是搜索二叉树以及如何判断一棵二叉树是否是搜索二叉树。 正文 搜索二叉树 搜索二叉树又称为二叉搜索树、二叉排序树,他首先是一个二叉树,这个二叉树可以是一个空树也可以非空。
如何收集二叉树的路径和?
前言 本文主要介绍如何把二叉树所有路径的各个节点值累计起来并返回。 给出一个二叉树的根节点,计算从这个二叉树结点到每一个叶子节点的节点和。
如何按层遍历二叉树?
前言 本文主要介绍如何按层次遍历一棵二叉树,并把遍历的结果放到集合中。 需求描述 给出一个二叉树的根节点 root ,然后返回其节点值的层序遍历,每一层从左到右进行遍历,返回数据时,从下往上进行返回。
如何用先序数组和中序数组重建一棵树?
前言 本文主要介绍如何用先序数组和中序数组重建一棵树。 我们都知道一棵二叉树的遍历方式有先序遍历、中序遍历、后续遍历,那么如果先给出一个树的先序遍历和中序遍历,能否还原出一棵二叉树呢?
如何用一个整数表示一个集合?Bitmap!
前言 本文主要介绍如何用一个整数来实现集合的功能,包括添加、删除、是否包含,实现这个功能就用到了位图——bitmap。
如何将两个链表每个节点按数值相加形成新链表?
前言 本文主要介绍如何将两个链表每个节点按数值相加形成新链表。 需求描述 给出两个链表的头结点head1和head2,每个节点的值都为0~9,每个链表的节点从左到右认为是某个数字的从低位到高位的值。
如何将一个链表分组并对每组进行反转?
前言 本文主要介绍如何把一个链接分成K个节点的N组,并对每个组的链表进行翻转。 需求描述 给出一个单链表的头结点head和一个整数k,将这个单链表实现k个节点的小组,并对小组内部进行链表反转。
如何合并多个升序链表?
前言 本文主要介绍如何将多个小的升序链表合并一个大的升序链表。 需求描述 给出K个升序链接,要求把这K个升序链表合并成一个,并且这个链表也是升序的。
判断二叉树是否相等、是否为镜面树
前言 本文介绍如何判断一个二叉树是否相等以及是否为镜面树。 相等二叉树 现在有两个相互独立的两个二叉树p和q,如果二叉树p的所有结构和q的所有结构完全相同,那么称二叉树p和q为完全相等的二叉树。
3分钟理解二叉树的先序、中序、后序、递归序
前言 本文介绍二叉树的几种遍历方式:先序、中序、后序、递归序。 二叉树 二叉树(Binary Tree)是树形结构的一个非常重要的类型,他的每个节点最多有个两个分支,两个分支也被称为左子树、右子树。
如何用位运算实现乘法运算?
前言 在上一篇中,我们介绍了使用位运算实现加法和减法运算,接下来本文主要介绍如何用位运算实现乘法运算,在实现乘法时要用位运算实现,并且不能出现加减乘除任何符号。
「兔了个兔」龟兔赛跑——乌龟和兔子能否相遇?
我正在参加「兔了个兔」创意投稿大赛,详情请看:「兔了个兔」创意投稿大赛 森林里一年一度的赛跑大赛又开始了,乌龟和兔子又被分到了一组,这次乌龟还能跑过兔子吗?
算法 | 寻找距离整数num最近的2的某次方
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天,本文主要介绍如何寻找距离int型整数num最近的2的某次方。
算法 | 如何用位运算实现加减运算?
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天,本文主要介绍如何使用位运算来实现加减功能。
算法 | 如何用位运算从一堆数中寻找出现奇数次的2个数?
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第34天,本文主要介绍如何用位运算从一堆数中寻找出现奇数次的2个数。
算法 | 如何把一个int型二进制数的最右侧的1提取出来?
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天, 本文主要介绍如何把一个int型二进制数的最右侧的1提取出来。
算法 | 如何用位运算从一堆数中寻找出现奇数次的数?
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,本文主要介绍如何使用位运算从一堆数中寻找出现奇数次的数。
算法 | Java中ArrayList扩容时时间复杂度是多少?
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第31天,本文主要介绍动态数组基本概念以及ArrayList扩容时间复杂度分析。
算法 | 如何不使用用额外变量交换两个数?
开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第30天,本文主要介绍如何不使用用额外变量交换两个数。
下一页