数据结构与算法
不想变秃。。。
想变强,又不想变秃。。。
展开
-
编程题009--按之字形顺序打印二叉树--niuke
题目描述:给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替)提示:数据范围:0 ≤ n ≤ 1500,树上每个节点的val满足 ∣val∣<= 1500要求:空间复杂度:O(n),时间复杂度:O(n)代码实现:public class Solution { public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) { if(pRoot.原创 2022-03-17 20:51:46 · 347 阅读 · 0 评论 -
编程题008--求二叉树的层序遍历--niuke
题目描述给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)提示0 <= 二叉树的结点数 <= 1500代码实现public class Solution { /** * * @param root TreeNode类 * @return int整型ArrayList<ArrayList<>> */ public ArrayList<ArrayList<Integer.原创 2022-03-17 17:40:01 · 340 阅读 · 0 评论 -
编程题007--判断是不是二叉搜索树--niuke
题目描述:给定一个二叉树根节点,请你判断这棵树是不是二叉搜索树。二叉搜索树满足每个节点的左子树上的所有节点均小于当前节点且右子树上的所有节点均大于当前节点。提示:数据范围:节点数量满足 1 ≤ n ≤ 10^4,节点上的值满足- 2^31 <= val ≤ 2^31 − 1代码实现: public boolean isValidBST (TreeNode root) { // write code here ArrayList<Integer.原创 2022-03-09 23:08:11 · 195 阅读 · 0 评论 -
编程题006--判断是不是完全二叉树--niuke
题目描述:给定一个二叉树,确定他是否是一个完全二叉树。完全二叉树的定义:若二叉树的深度为 h,除第 h 层外,其它各层的结点数都达到最大个数,第 h 层所有的叶子结点都连续集中在最左边,这就是完全二叉树。(第 h 层可能包含 [1~2h] 个节点)提示:数据范围:节点数满足 1 ≤ n ≤ 100代码实现:public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * .原创 2022-03-09 23:02:48 · 204 阅读 · 0 评论 -
编程题005--判断是不是平衡二叉树--niuke
题目表述:输入一棵节点数为 n 二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。提示:数据范围:n ≤ 100,树上节点的val值满足 0 ≤ n ≤ 1000要求:空间复杂度O(1),时间复杂度 O(n)代码实现public class Solution { publi.原创 2022-03-09 23:00:09 · 138 阅读 · 0 评论 -
编程题004--对称的二叉树--niuke
题目描述:给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)提示:数据范围:节点数满足 0 ≤ n ≤ 1000,节点上的值满足∣val∣≤1000要求:空间复杂度 O(n),时间复杂度 O(n)备注:你可以用递归和迭代两种方法解决这个问题代码实现:public class Solution { boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null) return tru.原创 2022-03-09 22:56:16 · 186 阅读 · 0 评论 -
编程题003--合并二叉树--niuke
题目描述:已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。提示:数据范围:树上节点数量满足 0 ≤ n ≤ 500,树上节点的值一定在32位整型范围内。进阶:空间复杂度 O(1),时间复杂度 O(n)代码实现:public class Solution { /** * * @param t1 TreeNode类 * @param t2 TreeNode类 * @re.原创 2022-03-09 22:52:59 · 180 阅读 · 0 评论 -
编程题002--二叉树的镜像--niuke
题目描述:操作给定的二叉树,将其变换为源二叉树的镜像提示:数据范围:二叉树的节点数 0 <= n <= 10000 , 二叉树每个节点的值 0 <= val <= 10000要求:空间复杂度 O(n)。本题也有原地操作,即空间复杂度 O(1)O(1) 的解法,时间复杂度 O(n)代码实现public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * .原创 2022-03-09 22:48:49 · 120 阅读 · 0 评论 -
编程题001--相同的树--likou
问题描述:给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。提示:两棵树上的节点数目都在范围 [0, 100] 内-10^4 <= Node.val <= 10^4代码实现:class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q ==n.原创 2022-03-09 22:40:46 · 156 阅读 · 0 评论 -
数据结构与算法--开张篇
数据结构与算法实乃我人生之敌总是看到大牛博客说数据结构与算法很重要,很重要,是一名程序员的基本内涵,但是作为小小牛,我十分痛恨,别问为啥,问就是:工作中感觉没用到,学了理论,感觉不就这,不太难,但是做起题来,捉襟见肘,典型的一看就会,一做就废。那你为啥还要写算法类的博客:因为热爱^ _^(面试考啊)在这系列中,主要会以题目的形式来展开,一篇一题,难易类型:简单中等知识铺垫:1.数组、队列、栈、树的基本概念2.各种二叉树:完全二叉树、二叉搜索树3.如何利用java类来构建这些数据数据结构4.常原创 2022-03-09 22:29:34 · 187 阅读 · 0 评论