摘要: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 示例 1: 输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2: 输入:nums1 = 阅读全文
posted @ 2021-09-02 22:57 sherry001 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 解 阅读全文
posted @ 2021-09-02 22:33 sherry001 阅读(60) 评论(0) 推荐(0) 编辑
摘要: 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列 阅读全文
posted @ 2021-09-02 18:28 sherry001 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 如何判段是否一个完全二叉树宽度优先遍历条件:1、不能有右无左,2、遇到孩子不双全的节点,接下来遇到的节点必是叶子节点 public static boolean isCBT(TreeNode head){ if(head==null){ return true; } Queue<TreeNode> 阅读全文
posted @ 2021-09-02 17:30 sherry001 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 可以有两种方式来实现: 前缀树 HashMap public static void main(String[] args) { String[] listStr={"k","ab","a","kie","kit","kitt","kittty"}; HashMap<String,Integer> 阅读全文
posted @ 2021-09-02 17:14 sherry001 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 字典树 贪心问题:可以做为贪心的一个策略 前缀树:可以求以ab做为前缀的有几个, 有没有加过个单词 解决的问题:可以知道以什么作为前缀的有几个,而hashMap只能解决整理个单词加入过几次,统计不了前缀的数量 public class TrieTree { public static class T 阅读全文
posted @ 2021-09-02 17:02 sherry001 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 满二叉树信息: 高度是H,节点数是N条件: n=2^h-1 public static boolean isFull(TreeNode head){ Info info=process(head); int n=info.nodes; int h=info.height; // n=2^h-1 re 阅读全文
posted @ 2021-09-02 17:01 sherry001 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 平衡二叉树:左右子树高度差不大于1条件:左子树是平衡树,右子树是平衡树,左右子树的高度差不高于1信息:是否平衡,高度 class Solution { 阅读全文
posted @ 2021-09-02 17:01 sherry001 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 递归方式: 是否是搜索二叉树一、 列可能性: 条件1:左子树是搜索树 条件2:右子树整体是搜索二叉 阅读全文
posted @ 2021-09-02 17:00 sherry001 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 层遍历:当前节点入队,弹出并打印,左右子节点入队 public static void leveOrder(TreeNode head){ if(head==null){ return; } Queue<TreeNode> queue=new LinkedList<>(); queue.add(he 阅读全文
posted @ 2021-09-02 16:59 sherry001 阅读(67) 评论(0) 推荐(0) 编辑
摘要: Morris遍历细节:假设cur来到当前节点,cur从头节点开始 1、cur没有左孩子,cur向右移动 2、cur有左孩子,找到左孩子的最右孩子 a:如果右孩子的右指针为空,则让右指针指向当前节点,当前节点向左移动,回到1;(表示第一次到这个节点) b:如果右孩子的右指针指向当前节点,让右指针指向n 阅读全文
posted @ 2021-09-02 12:40 sherry001 阅读(144) 评论(0) 推荐(0) 编辑