ICode9

精准搜索请尝试: 精确搜索
  • LeetCode617 合并二叉树2022-09-02 23:33:53

    LeetCode617 合并二叉树 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def mergeTrees(self, roo

  • 考研数据结构2022-09-02 21:30:17

    简介 中南大学数据结构考研943 Ⅴ.考查内容 1、数据结构有关的概念和术语 1)数据结构; 2)抽象数据类型; 3)算法、算法设计的要求、算法效率的度量。 2、链表、栈、队列、串 1)链表、静态链表(单链表、双向链表、循环链表)及相关算法; 2)栈及顺序栈、链栈的进栈、出栈等算法; 3)队及顺序队、链

  • 力扣 110. 平衡二叉树 [基础+优化]2022-08-31 14:30:08

    110. 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。   示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:true 示例 2: 输入:root = [1,2,2,3,3,null,null,4,4

  • leetcode-998. 最大二叉树 II2022-08-30 19:00:08

    998. 最大二叉树 II 图床:blogimg/刷题记录/leetcode/998/ 刷题代码汇总:https://www.cnblogs.com/geaming/p/16428234.html 题目 思路 看到树就要想到递归。 解法 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *

  • 662. 二叉树最大宽度2022-08-30 16:32:20

    题目描述   给你一棵二叉树的根节点 root ,返回树的 最大宽度 。树的 最大宽度 是所有层中最大的 宽度 。每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也

  • js 实现二叉树中序遍历2022-08-30 01:01:45

    var inorderTraversal = function (root) { // 迭代 if (!root) { return []; } let res = []; let stack = []; while (stack.length > 0) { // 循环遍历,将所有左节点push到栈中 while (root) { stack.push(root);

  • 110.balanced-binary-tree 平衡二叉树2022-08-28 18:31:47

    获取左右子树的高度,如果左右子树高度差小于等于1,则判断左右子树的左右子树,如此递归下去。 class Solution { public: int getDp(TreeNode *root) { if (root == nullptr) return 0; int ldp = getDp(root->left); int rdp = getDp(root

  • 【重要】LeetCode 662. 二叉树最大宽度2022-08-28 00:33:38

    题目链接 注意事项 根据满二叉树的节点编号规则:若根节点编号为 u,则其左子节点编号为 u << 1,其右节点编号为 u << 1 | 1。 一个朴素的想法是:我们在 DFS过程中使用两个哈希表分别记录每层深度中的最小节点编号和最大节点编号,两者距离即是当前层的宽度,最终所有层数中的最大宽度即是答

  • 662. 二叉树最大宽度2022-08-27 23:01:35

    662. 二叉树最大宽度 给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这

  • 算法总结2022-08-27 22:30:09

    1.二叉树的右侧视图 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 题解:根之前二叉树解题类似,用广度优先搜索或者深度优先搜索遍历二叉树,这个题就是取每一层的最后一个元素,使用一个队列存储每一层的结点完成对层结点遍历

  • 222.count-complete-tree-nodes 完全二叉树的节点个数2022-08-27 20:04:36

    遍历法 遍历所有节点的方法,时间复杂度为\(O(n)\) class Solution { public: int countNodes(TreeNode *root) { if (root == nullptr) return 0; int lc = countNodes(root->left); int rc = countNodes(root->right); return

  • leetcode222-完全二叉树的节点个数2022-08-25 20:02:38

    完全二叉树的节点个数 递归 class Solution { public int countNodes(TreeNode root) { if(root == null) return 0; return countNodes(root.left)+countNodes(root.right)+1; } }

  • leetcode 热题100刷题-二叉树的中序遍历2022-08-24 08:00:09

    题 题号:94 题目:二叉树的中序遍历 难度:简单 链接:https://leetcode.cn/problems/binary-tree-inorder-traversal/ 2022/08/23答案 算法思路   本题在课程中是学过的。   大致的思路就是利用迭代。首先是前序、中序、后序的遍历的意思,可以直接通过前/中/后这三个字来理解。前就是

  • 2022-8-22 剑指offer-优先队列-每日一题-二叉树-搜索/递归2022-08-22 11:05:09

    剑指 Offer II 060. 出现频率最高的 k 个数字 难度中等36收藏分享切换为英文接收动态反馈 给定一个整数数组 nums 和一个整数 k ,请返回其中出现频率前 k 高的元素。可以按 任意顺序 返回答案。 1 class Solution { 2 public int[] topKFrequent(int[] nums, i

  • 算法---二叉树的前序遍历2022-08-22 10:01:05

    知识点 树递归dfs广度优先搜索(BFS) 描述 给你二叉树的根节点 root ,返回它节点值的 前序遍历。 数据范围:二叉树的节点数量满足 0≤n≤100 0 \le n \le 100 \ 0≤n≤100  ,二叉树节点的值满足 1≤val≤100 1 \le val \le 100 \ 1≤val≤100  ,树的各节点的值各不相同

  • 平衡二叉树2022-08-22 09:06:26

    1.为什么需要平衡二叉树? 二叉排序树可能的存在的问题 给你一个数列{1,2,3,4,5,6},要求创建一颗二叉排序树(BST), 并分析问题所在. 上图BST存在的问题分析: 左子树全部为空,从形式上看,更像一个单链表。 插入速度没有影响 查询速度明显降低(因为需要依次比较), 不能发挥BST的优势,

  • 655. 输出二叉树2022-08-22 01:00:24

    655. 输出二叉树 给你一棵二叉树的根节点 root ,请你构造一个下标从 0 开始、大小为 m x n 的字符串矩阵 res ,用以表示树的 格式化布局 。构造此格式化布局矩阵需要遵循以下规则: 树的 高度 为 height ,矩阵的行数 m 应该等于 height + 1 。 矩阵的列数 n 应该等于 2height+1 - 1

  • 二叉树遍历方法总结2022-08-21 17:33:42

    二叉树基本概念 面试的时候提到的树, 大部分都是二叉树. 所谓二叉树是树的一种特殊结构, 在二叉树中每个节点最多只能有两个子节点, 在二叉树中最重要的操作莫过于遍历, 即按照某一顺序访问树中的所有节点. 树的遍历方式 通常树有如下几种遍历方式: 前序遍历 中序遍历 后续遍历

  • 数据结构3-二叉树2022-08-21 15:31:32

    二叉树概念    二叉树分类     二叉树遍历方式  

  • 二叉树的统一迭代法遍历2022-08-20 20:35:08

    中序遍历 中序遍历无法直接利用栈进行遍历,需要利用指针进行遍历,对栈中的节点进行操作。 对于中间节点,如果指针遍历到了,但没有进行处理,就再push()一个nullptr,作为标记,说明这个节点只是遍历过了,但是没有处理。事实上,每个待处理(放入vector)中的节点,其在栈中的上层元素都会是nullptr

  • 二叉树 查找第k大的数2022-08-20 16:02:41

    改造方法 需在节点N中记录以节点N为根的子树的节点数numOfNodes, 根节点记录整颗树的节点数目, 则若根节点的左子树的numOfNodes刚好为k-1,那这个根节点的值即为目标值。 注意递归时,k需变化,因为有可能在右子树上 使用二叉堆 法一 将数组构建成一个二叉堆(这时要求最大的在上面), 然后执

  • 2022-8-20 每日一题-二叉树-递归2022-08-20 11:00:51

    654. 最大二叉树 难度中等499收藏分享切换为英文接收动态反馈 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值

  • 654. 最大二叉树2022-08-20 02:00:08

    654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums

  • LeetCode/最大二叉树2022-08-20 01:31:22

    给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值 递归地在最大值 左边 的 子数组前缀上 构建左子树 递归地在最大值 右边 的 子数组后缀上 构建右子树 1. 暴力分治构造 暴力在于每次递归都要找一次最大

  • 【LeetCode】102.二叉树的层序遍历2022-08-19 23:34:14

    【LeetCode】102.二叉树的层序遍历 /* * 转载请说明出处与作者 * 作者:多巴胺dopamine */ 一 问题描述 1 题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有