当前位置:网站首页>Leetcode brush questions - 543. Diameter of binary trees, 617. Merging binary trees (recursive solution)
Leetcode brush questions - 543. Diameter of binary trees, 617. Merging binary trees (recursive solution)
2022-08-04 11:13:00 【lonelyMangoo】
递归
To solve these two problems, I would like to first understand the idea of recursion,There are three elements to solving recursive problems:
- 方法参数和返回值
- 方法参数:There are two cases for method parameters
- If it is related to the previous,Then you have to set it as a global variable
例如刷题中的538题,就会出问题,As a result, the value passed in is not the latest,下面的543the same question. - If it doesn't matter before,That is to say, it only works on the current layer,即局部的,It is passed through the method body
- If it is related to the previous,Then you have to set it as a global variable
- 返回值
When you need to use the return value,设置返回值,The following two questions will be required,
而上面提到的刷题中的538题,已经使用sumThe values I need are logged,No return value operation is required.另外,Generally judged with return value,有false直接返回了.
- 终止条件
It's where you need to be clear,When to stop and when to end. - 函数体
Operations on nodes and data
下面的题目,I will go through the above three steps to analyze
543. 二叉树的直径
543. 二叉树的直径
这道题翻译一下,Find the largest of the sum of the heights of the left and right subtrees of each node.
Why grab every node,Because I did it with hierarchical traversal at first,I thought it must start from the follow node,这个想法是错的,举个例子,The height of the root's right subtree is 1,The left subtree is two subtrees of the same height,高度都为10.
代码:
//It is written outside because this is a global variable,Find the global largest.
int ans;
public int diameterOfBinaryTree(TreeNode root) {
depth(root);
return ans;
}
//The return value is set because it is needed to find the height
private int depth(TreeNode root){
//结束条件
if(root == null){
return 0;
}
//方法体
// Recursively find the height of the left and right subtrees of the current node
int leftDepth = depth(root.left);
int rightDepth = depth(root.right);
ans = Math.max(ans,leftDepth+rightDepth);
//返回当前子树的高度
return Math.max(leftDepth,rightDepth)+1;
}

617. 合并二叉树
617. 合并二叉树
题目很好理解,思路,Pick up new ones
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
return build(root1, root2);
}
//先序遍历.
//The return value is set because it is needed to build a tree
public static TreeNode build(TreeNode root1, TreeNode root2){
//终止条件
//叶子结点,直接返回
if(root1==null && root2==null) return null;
//And wool scallops,可冲
if(root1!=null && root2==null) return root1;
if(root1==null && root2!=null) return root2;
//The overlapping part of the left and right subtrees,需要叠加,
TreeNode node = new TreeNode(root1.val + root2.val);
//建树,Here you can see the return value that needs to be used.
node.left=build(root1.left, root2.left);
node.right=build(root1.right,root2.right);
return node;
}

边栏推荐
- vscode插件设置——Golang开发环境配置
- AWS Lambda related concepts and implementation approach
- 音频编辑 合唱
- BOSS 直聘回应女大学生连遭两次性骚扰:高度重视求职者安全,可通过 App 等举报
- audio_policy_configuration.xml配置文件详解
- ArrayList和LinkedList的区别
- Xilinx VIVADO 中 DDR3(Naive)的使用(3)仿真测试
- C language * Xiaobai's adventure
- Jenkins使用手册(1) —— 软件安装
- [Hongke case] Assembling furniture based on 3D camera
猜你喜欢

CVPR 2022 | 从人体网格预测骨架,是真正的生理学骨架!

What is the terminal privilege management

Xilinx VIVADO 中 DDR3(Naive)的使用(3)仿真测试

职责链模式(responsibilitychain)

Heap Sort

Events in August | 51CTO's 17th Anniversary Celebration, post a blog post to get gifts such as tea sets/notebooks/T-shirts!

Redis查询缓存

zabbix部署

Leetcode刷题——构造二叉树(105. 从前序与中序遍历序列构造二叉树、106. 从中序与后序遍历序列构造二叉树)

上帝空间——全球首个基于Web3.0的艺术协议创意平台,拓宽多元艺术融合边界
随机推荐
*iframe*
Events in August | 51CTO's 17th Anniversary Celebration, post a blog post to get gifts such as tea sets/notebooks/T-shirts!
Win11 file types, how to change?Win11 modify the file suffix
强烈推荐一款优秀且通用的后台管理系统
Graphic and text hands-on tutorial--ESP32 MQTT docking EMQX local server (VSCODE+ESP-IDF)
SkiaSharp 之 WPF 自绘 粒子花园(案例版)
WPF 截图控件之画笔(八)「仿微信」
zabbix deployment
网管交换机与非网管交换机如何选择?
少即是多:视觉SLAM的点稀疏化(IROS 2022)
CVPR 2022 | 从人体网格预测骨架,是真正的生理学骨架!
【黄啊码】MySQL入门—2、使用数据定义语言(DDL)操作数据库
Small program containers accelerate the construction of an integrated online government service platform
Maple 2022软件安装包下载及安装教程
【虹科案例】基于3D相机组装家具
vscode插件设置——Golang开发环境配置
Super Learning Method
ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法
datax oracle to oracle离线json文件
职责链模式(responsibilitychain)