力扣
易逑实战数据
一个跨考生,致力于开发实战经验的分享
展开
-
力扣897:递增顺序查找树(以后均采用Java代码编写)
一、题目描述 这是一个简单难度的有关树的题,题目描述为给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 二、思路解析 这很容易用到拆分重组思想,首先将树按照中序遍历将结点都提取出来,然后将结点进行重新建树,这需要一个媒介,在java中这个媒介就是可以是List集合,即用List存储按中序排序提取出来的结点,然后按照要求进行排序。这里注意List定义语句是List vals=new ArrayList()。 三、代码解析 按照思路我们就应该原创 2021-03-17 09:54:08 · 87 阅读 · 0 评论 -
力扣94:二叉树的中序遍历
题目描述: 该题是经典的二叉树中序遍历,给定一个二叉树的根节点 root ,返回它的 中序 遍历。 输入:root = [1,null,2,3] 输出:[1,3,2] 输入:root = [] 输出:[] 解决方法: 方法一:递归 思路与算法 首先我们需要了解什么是二叉树的中序遍历:按照访问左子树——根节点——右子树的方式遍历这棵树,而在访问左子树或者右子树的时候我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。 定义 inorder(r原创 2021-01-21 18:29:30 · 160 阅读 · 0 评论 -
力扣628.三个数的最大乘积
问题描述 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例1: 输入:[1,2,3] 输出:6 示例2: 输入:[1,2,3,4] 输出:24 问题分析: 这是一道简单的力扣题,首先应该从数学角度分析,该数组没有告诉我们数组里面是正数还是负数,所以应该分别进行讨论。 方法一.排序 首先将数组排序。 如果数组中全是非负数,则排序后最大的三个数相乘即为最大乘积;如果全是非正数,则最大的三个数相乘同样也为最大乘积。 如果数组中有正数有负数,则最大乘积既可能是三个最大正数的乘积,也可能是原创 2021-01-20 09:02:26 · 134 阅读 · 0 评论