Leecode 1123. 最深叶节点的最近公共祖先 DFS

news/2024/7/20 21:16:56 标签: 深度优先, leetcode, 算法, c++, 数据结构

原题链接:Leecode 1123. 最深叶节点的最近公共祖先
在这里插入图片描述
在这里插入图片描述

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int height(TreeNode* root)
    {
        if(!root) return 0;
        return max(height(root->left),height(root->right))+1;
    }
    TreeNode* lcaDeepestLeaves(TreeNode* root) {
        if(!root) return root;
        int l=height(root->left);
        int r=height(root->right);
        if(l==r) return root;
        if(l>r) return lcaDeepestLeaves(root->left);
        return lcaDeepestLeaves(root->right);
    }
};

http://www.niftyadmin.cn/n/1264655.html

相关文章

Leecode 1372. 二叉树中的最长交错路径 DFS

原题链接:Leecode 1372. 二叉树中的最长交错路径 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x)…

java基础练习:随机数数组的比较

Math.random()产生一个随机数,数字范围[0.0,1.0) package com.atguigu.exxer;import java.util.Scanner;/** 随机产生10个元素(10——99范围),保存到数组中,查找里面是否有>80,如果有,显示有…

java基础:数组的反转

注意:数组的索引值要在数组的长度上减1. package com.atguigu.java2;import java.util.Arrays;/** 数组的反转、查找*/ public class ArrayAriTest2 {public static void main(String[] args) {int[] numbers {10,20,6,5,3} ;//方法一:数组的反转-创建…

Leecode 1631. 最小体力消耗路径 BFS/并查集/二分/DP

原题链接&#xff1a;Leecode 1631. 最小体力消耗路径 这题还得好好看 参考题解&#xff1a;【多解法】DP 二分 BFS 并查集 并查集 class Djset { public:vector<int> parent;vector<int> rank;Djset(int n): parent(n),rank(n){for(int i0;i<n;i){parent…

java基础:数组元素的交换

package com.atguigu.java2; /** 数组元素的交换*/ public class ArrayAriTest3 {public static void main(String[] args) {int a10;int b6;//方式一(建议)&#xff1a;基本数据类型和引用数据类型都能用int temp a;a b;b temp;//方式二&#xff1a;只能是基本数据类型中的数…

Leecode 1143. 最长公共子序列 经典DP

原题链接&#xff1a;Leecode 1143. 最长公共子序列 class Solution { public:int longestCommonSubsequence(string text1, string text2) {int mtext1.size(),ntext2.size();vector<vector<int>> dp(m1,vector<int>(n1));for(int i0;i<m;i) dp[i][0]…

java基础:二分法查找

package com.atguigu.java2;import java.util.Arrays;import org.omg.CORBA.FieldNameHelper;public class BinarySearch {public static void main(String[] args) {int[] number {12,30,-5,6,9,10,5};//必须先排序Arrays.sort(number);System.out.println(Arrays.toString(n…

java基础:线性查找

package com.atguigu.java2; /** 线性查找、二分法查找*/ public class ArrayAriTest4 {public static void main(String[] args) {int[] numbers {10,20,6,5,3};//线性查找int findNumber 20; //需要找的值int index -1; //用来记录查找到的数值的索引位置for (int i 0; i…