数据结构与算法
常见的数据结构与算法及实现方式
outwardly
这个作者很懒,什么都没留下…
展开
-
二叉树的创建及DFS、BFS遍历
public class BinaryTree { // 创建二叉树的方法 public TreeNode createTree(int[] value) { //List<TreeNode> list = new ArrayList<>(); LinkedList<TreeNode> list = new LinkedList<>(); for (int i = 0; i < value.原创 2022-01-02 21:22:15 · 130 阅读 · 0 评论 -
二叉树的遍历方式——迭代法
前序遍历(迭代法)中—>左—>右 前序遍历时,每次首先处理的是中间结点,那么先将根节点放入栈中,然后将右孩子加入栈,再加上左孩子。 先加入右孩子,再加入左孩子;这样出栈的时候才是中左右的顺序。 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); Deque<TreeNo.原创 2022-01-02 21:00:13 · 965 阅读 · 0 评论 -
二叉树的遍历方式——递归法
深度优先遍历(DFS) 递归算法的三步骤:(以前序遍历为例) 确定递归函数的参数和返回值:因为要打印遍历节点的值,所以参数要传入ArrayList存放节点的值,不需要有返回值,所以返回类型为void。 确定终止条件:当前遍历节点为空,本层递归就结束了。 确定单层递归的逻辑:前序遍历是中左右的顺序。 前序遍历(递归法)中—>左—>右 class TreeNode { int val; TreeNode left; TreeNode right; pub原创 2022-01-02 18:09:10 · 746 阅读 · 0 评论 -
二叉树的基础
二叉树的种类 主要有满二叉树、完全二叉树、二叉搜索树、平衡二叉搜索树。 满二叉树:如果一棵二叉树只有度为0或2的节点,且度为0的节点在同一层则为满二叉树。满二叉树的深度为k,则节点数为2^k-1。 完全二叉树:在完全二叉树的基础上,最后一层叶子结点都在最左边的位置。 二叉搜索树(二叉排序树、二叉查找树):是一个有序树;左子树的所有节点值均小于根节点值;右子树的所有节点值均大于根节点值;左右子树也分别为二叉搜索树。 平衡二叉搜索树:在二叉搜索树的基础上有以下性质:为空树或者左右两个子树的高.原创 2022-01-02 17:07:57 · 262 阅读 · 0 评论