leetcode热题100道-树
数据结构-树
晨思好燕寻巢
这个作者很懒,什么都没留下…
展开
-
Leetcode543二叉树的直径(JAVA实现)
一.题目描述二.方法 递归 函数为:public int diameterOfBinaryTree(TreeNode root)我的思考过程:最大直径表示的是两节点之间的边的数目,考虑左右子树的最大直径,如下:int left_length = diameterOfBinaryTree(root.left);int right_length = diameterOfBinaryTree(root.right);可以得到左子树的最大直径left_depth,右子树的最原创 2022-01-01 15:25:37 · 510 阅读 · 0 评论 -
leetcode101对称二叉树-JAVA
一.题目描述判断一棵树是否是对称二叉树public boolean isSymmetric(TreeNode root){}二.解题方法 递归 递归的思路很简单,判断它的左右子树是否对称就可以,所以构造函数。public boolean compare(TreeNode root1,TreeNode root2){ }先确定递归终止的条件。root1和root2有一个结点为空,root1和root2都为空。 如果root1和root2节点不为空,比较r.原创 2021-12-29 20:37:15 · 173 阅读 · 0 评论 -
leetcode227合并二叉树
一.题目描述二.解决办法1.递归如果考虑递归,就需要知道递归的终止条件是什么?本题的终止条件是:当root1或者root2为空时,root1为空就返回root2,root2为空就返回root1if(root1 == null) return root2;if(root2 == null) return root1;确定了终止条件后,我的理解是进行一次进行一次合并二叉树的操作。 class Solution { public TreeNode merg原创 2021-12-25 23:24:47 · 279 阅读 · 0 评论 -
leetcode226-翻转二叉树(JAVA实现)
一.题目描述翻转一颗二叉树二. 解法层序遍历法/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, Tr原创 2021-12-23 00:17:52 · 650 阅读 · 0 评论 -
Leetcode104二叉树的最大深度
一.题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。二.方法 递归(深度优先搜索) 如果我们知道了左子树和右子树的最大深度和,那么该二叉树的最大深度即为然后左子树和右子树的深度可以通过同样的方式得到,所以是一个典型的递归问题。/** * Definition for a binary tree node. * struct TreeNode { * ..原创 2021-12-19 13:22:49 · 83 阅读 · 0 评论 -
Leetcode94:二叉树的中序遍历
一.题目给定一个二叉树的根节点root,返回它的中序遍历二.方法 递归 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNod...原创 2021-12-12 21:07:59 · 845 阅读 · 0 评论