
树
树
Haha@25
300字以内
展开
-
501. 二叉搜索树中的众数(树)(BST)(回看)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pri...原创 2020-02-14 11:52:23 · 124 阅读 · 0 评论 -
530. 二叉搜索树的最小绝对差(树)(BST)
方法一:(中序遍历+额外o(n)的存储空间) 中序遍历BST ,得到的序列有序,所有相邻结点差的绝对值的最小值就是要找的结果 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * ...原创 2020-02-14 10:11:25 · 153 阅读 · 0 评论 -
653. 两数之和 IV - 输入 BST(树)(BST)(有序数组的两数之和)
方法一: 将BST的值存储到HashMap中,转化为 两数和为目标值的问题;LeetCode 1 两数之和 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode...原创 2020-02-13 12:56:46 · 132 阅读 · 0 评论 -
109. 有序链表转换二叉搜索树(树)(BST)(模拟中序遍历)
方法一: 思路类似 LeetCode 108 也是每次加入中间元素; 只是改成了链表,不能随机存取; 使用快慢指针找到链表的中间结点; 递归构造平衡BST 注意点: 要添加终止条件: if(head == mid) return root; 如果不添加这个条件,当链表只有一个结点时,将无限循环递归(原因时在递归时传入的参数head 始终不改变,执行结果一样) /** * Definitio...原创 2020-02-13 11:30:49 · 235 阅读 · 0 评论 -
108. 将有序数组转换为二叉搜索树(树)(BST)(回看)
关键点,对一个有序数组,要想构造一棵 平衡BST,必须从中间的结点开始; 选取中间点可以随意选,构造的平衡BST不唯一 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * T...原创 2020-02-12 23:51:03 · 122 阅读 · 0 评论 -
236. 二叉树的最近公共祖先(树)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pr...原创 2020-02-12 12:59:58 · 172 阅读 · 0 评论 -
235. 二叉搜索树的最近公共祖先(树)(BST)
要利用 BST的性质 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solutio...原创 2020-02-12 11:42:16 · 153 阅读 · 0 评论 -
538. 把二叉搜索树转换为累加树(树)
遍历顺序,右根左 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution ...原创 2020-02-12 10:23:44 · 186 阅读 · 0 评论 -
230. 二叉搜索树中第K小的元素(树)(BST)
方法一: 中序遍历 用一个ArrayList记录下中序遍历经过的结点的值 这个ArrayList实例的下标 k-1 处即为第k小的结点 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; ...原创 2020-02-11 11:45:14 · 129 阅读 · 0 评论 -
669. 修剪二叉搜索树(树)(如何改变二叉树的结构)
方法一 思路: 对当前节点 如果当前节点的值>R 那么修剪其左子树 如果当前节点的值<L 那么修建其右子树 如果当前节点的值属于[L,R] 那么对其左右子树都要修减 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * ...原创 2020-02-11 11:09:51 · 144 阅读 · 0 评论 -
前中后序遍历的非递归方法 LeetCode144,145,94(待总结)
前序 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> ret = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>(); stack.push(root); ...原创 2020-02-11 10:23:05 · 136 阅读 · 0 评论 -
513. 找树左下角的值(树)(层次遍历)
方法一: 层序遍历,类似 LeetCode 637.二叉树的层平均值 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x;...原创 2020-02-11 09:59:11 · 142 阅读 · 0 评论 -
637. 二叉树的层平均值(树)(层次遍历)
方法一: 层次遍历 实现按层处理的方法: 每次对一层的结点进行入队和出队操作,当上一层结点出队完成,下一层结点入队完成;这样每完成这样一次集中操作,队中的元素个数就是当前要访问层的结点总数 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode lef...原创 2020-02-11 09:37:14 · 176 阅读 · 0 评论 -
671. 二叉树中第二小的节点(树)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pr...原创 2020-02-09 22:57:51 · 158 阅读 · 0 评论 -
337. 打家劫舍 III(树)(动态规划)(动态规划不懂)(回看)
我的错误解法: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution {...原创 2020-02-09 22:56:54 · 148 阅读 · 1 评论 -
687. 最长同值路径(树)
方法一: 递归 本问题可分解为 先求左子树和右子树的最长同值路径,再看左子树和右子树是否和根节点相同,如果相同将根节点归入,总路径分别+1; 本问题根节点要调用左右子树的结果,用后序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left...原创 2020-02-09 22:55:40 · 119 阅读 · 0 评论 -
404. 左叶子之和(树)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pub...原创 2020-02-09 22:54:25 · 115 阅读 · 0 评论 -
111. 二叉树的最小深度(树)
方法一:(有待改进,方法中将minDepth这个本该为局部变量的参数设为成员变量,这样的设计不合理) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int...原创 2020-02-09 22:52:42 · 134 阅读 · 0 评论 -
101. 对称二叉树(树)
方法一:递归 一棵树是对称的,当它的左子树和右子树是镜像时,满足条件;所以用递归很好解决 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x)...原创 2020-02-09 20:55:45 · 162 阅读 · 0 评论 -
572. 另一个树的子树(树) (有疑问)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { //pr...原创 2020-02-07 23:42:34 · 115 阅读 · 0 评论 -
437. 路径总和 III(树)
对于树的题目一般都要遍历 递归前序遍历的结构 public int A(TreeNode root){ if(root == null) return 0; //插入逻辑 int c = A(root.left); int d = A(root.right); return ...c+d; } 本题解: /** * Definition for a binary tree...原创 2020-02-07 17:46:39 · 143 阅读 · 0 评论 -
112. 路径总和(树)
方法一: 递归法 每次更新sum为 sum =sum-root.val; 当某个叶子结点的sum变为 0 时,表明找到了该路径,返回true /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right...原创 2020-02-07 12:08:10 · 189 阅读 · 0 评论 -
617. 合并二叉树(树)(待总结)
方法一: 递归,前序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solut...原创 2020-02-07 11:15:40 · 105 阅读 · 0 评论 -
226. Invert Binary Tree(递归)(回看)
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pub...原创 2020-01-24 17:26:36 · 93 阅读 · 0 评论 -
543. 二叉树的直径
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pri...原创 2020-01-24 17:12:34 · 140 阅读 · 0 评论 -
104. Maximum Depth of Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { pub...原创 2020-01-24 15:06:34 · 84 阅读 · 0 评论 -
110. Balanced Binary Tree
使用后序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ /** Editor:...原创 2020-01-24 14:56:27 · 139 阅读 · 0 评论