题目 |
我的思考 |
|
是做过,可是忘得真干净 |
题解 |
题解思路 |
public class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { // 如果当前节点为空,返回空 if (root == null) { return null; } // 如果当前节点是 p 或 q,返回当前节点 if (root == p || root == q) { return root; }
// 在左子树中查找 p 和 q TreeNode left = lowestCommonAncestor(root.left, p, q); // 在右子树中查找 p 和 q TreeNode right = lowestCommonAncestor(root.right, p, q);
// 如果左子树和右子树都找到了 p 或 q,返回当前节点 if (left != null && right != null) { return root; }
// 否则,返回非空的子树结果 return left != null ? left : right; } } |
整体思路:
|
遇到的问题分析 |
学习到的知识点 |
049-236 二叉树的最近公共祖先 高频mid
最新推荐文章于 2025-07-29 19:56:06 发布