二叉树
zhenliang_Horn
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 33. 二叉搜索树的后序遍历序列
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: truejavaclass Solution { public boolean verifyPostorder(int[] postorder) { return recur(postord原创 2020-09-07 11:43:38 · 68 阅读 · 0 评论 -
剑指 Offer 34. 二叉树中和为某一值的路径
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和 sum = 22,java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) {原创 2020-09-06 20:21:58 · 67 阅读 · 0 评论 -
剑指 Offer 68 - I. 二叉树(搜索树)的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]java/** * Definition for a binary tree node. * public class TreeNode { *原创 2020-09-04 15:50:16 · 81 阅读 · 0 评论 -
剑指 Offer 55 - II. 平衡二叉树
输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solu原创 2020-09-04 15:10:42 · 77 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树中等难度
class Solution { HashMap<Integer, Integer> dic = new HashMap<>(); int[] po; public TreeNode buildTree(int[] preorder, int[] inorder) { po = preorder; for(int i = 0; i < inorder.length; i++) dic.put...原创 2020-09-01 11:05:45 · 118 阅读 · 0 评论 -
剑指 从上到下打印二叉树
java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int[] levelOrder(TreeNode root) { if(r.原创 2020-09-03 11:13:38 · 62 阅读 · 0 评论 -
剑指 Offer 54. 二叉搜索树的第k大节点
java/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { ArrayList<Integer> res = new ArrayList<>().原创 2020-09-04 10:17:25 · 97 阅读 · 0 评论 -
求二叉树深度
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public int maxDepth(TreeNode root) { retu原创 2020-09-04 10:59:21 · 67 阅读 · 0 评论