
tree
puspos
这个作者很懒,什么都没留下…
展开
-
64. 最小路径和
问题 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 例子 思路 方法1 dp,直接在数组修改 grid[i][j]=Math.max(grid[i][j-1], grid[i-1][j])+grid[i][j]; 方法2 代码 //方法1 4ms class Solution { ...原创 2020-03-17 16:47:27 · 104 阅读 · 0 评论 -
96. 不同的二叉搜索树
问题 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 例子 思路 动态规划 f(i)=g(1)+g(2)+..+g(i) g(j)以j为根节点g(j)=f(j−1)f(i−j) 以j为根节点,因为是二叉搜索树,则左子树为1 j−1,有j−1个数,右子树为j+1 i,有i−j个数f(i)=f(0)f(i−1)+f...原创 2020-03-17 16:14:48 · 88 阅读 · 0 评论 -
235. 二叉搜索树的最近公共祖先
问题 例子 思路 使用二叉树的特点:左子树<根节点<右子树 方法1 当做普通二叉树,同236题 方法2 当做二叉排序树,利用其特点 代码 //方法1 public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root==null || ...原创 2020-03-16 09:48:55 · 94 阅读 · 0 评论 -
108. Convert Sorted Array to Binary Search Tree [ 将有序数组转换为二叉搜索树]
描述 Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of ...原创 2019-10-14 14:00:58 · 181 阅读 · 0 评论 -
107. 二叉树的层次遍历 II
问题 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例子 思路 方法1 先层次遍历得到list,然后翻转 方法2 代码 //方法1 class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) ...原创 2020-03-15 23:01:51 · 89 阅读 · 0 评论 -
剑指offer_面试题28. 二叉树的镜像
问题 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例子 思路 方法1 方法2 代码 //方法1 class Solution { public TreeNode mirrorTree(TreeNode root) { if(root==null) return null; TreeNode temp = root.left; ...原创 2020-03-14 09:56:25 · 130 阅读 · 0 评论 -
543. 二叉树的直径
问题 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过根结点。 例子 思路 树的最大深度=max(左子树最大深度, 右子树最大深度)+1 直径:结点的左子树最大深度+右子树最大深度 不一定过根节点:可能直径的路径过其他结点 方法1 二重递归(很多重复计算) 方法2 一重递归(更好) 代码 # Definition for a b...原创 2020-02-03 21:26:46 · 155 阅读 · 0 评论 -
100. 相同的树
问题 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的 例子 思路 代码 class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { //不能通过中序遍历得到数组进行比较来验证 //如:[1,1] [1,null,...原创 2020-03-08 22:30:07 · 88 阅读 · 0 评论