![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
树
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 · 92 阅读 · 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 · 113 阅读 · 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 · 84 阅读 · 0 评论 -
109. 有序链表转换二叉搜索树(树)(BST)(模拟中序遍历)
方法一:思路类似 LeetCode 108也是每次加入中间元素;只是改成了链表,不能随机存取;使用快慢指针找到链表的中间结点;递归构造平衡BST注意点:要添加终止条件: if(head == mid) return root;如果不添加这个条件,当链表只有一个结点时,将无限循环递归(原因时在递归时传入的参数head 始终不改变,执行结果一样)/** * Definitio...原创 2020-02-13 11:30:49 · 197 阅读 · 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 · 85 阅读 · 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 · 131 阅读 · 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 · 108 阅读 · 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 · 121 阅读 · 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 · 95 阅读 · 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 · 102 阅读 · 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 · 92 阅读 · 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 · 101 阅读 · 0 评论 -
637. 二叉树的层平均值(树)(层次遍历)
方法一:层次遍历实现按层处理的方法:每次对一层的结点进行入队和出队操作,当上一层结点出队完成,下一层结点入队完成;这样每完成这样一次集中操作,队中的元素个数就是当前要访问层的结点总数/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode lef...原创 2020-02-11 09:37:14 · 145 阅读 · 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 · 119 阅读 · 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 · 104 阅读 · 1 评论 -
687. 最长同值路径(树)
方法一:递归本问题可分解为先求左子树和右子树的最长同值路径,再看左子树和右子树是否和根节点相同,如果相同将根节点归入,总路径分别+1;本问题根节点要调用左右子树的结果,用后序遍历/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left...原创 2020-02-09 22:55:40 · 84 阅读 · 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 · 71 阅读 · 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 · 102 阅读 · 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 · 125 阅读 · 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 · 68 阅读 · 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 · 93 阅读 · 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 · 125 阅读 · 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 · 82 阅读 · 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 · 69 阅读 · 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 · 84 阅读 · 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 · 54 阅读 · 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 · 103 阅读 · 0 评论