二叉树两个节点的最小公共祖先节点(LeetCode-236)
发布日期:2021-05-07 13:31:04 浏览次数:25 分类:精选文章

本文共 525 字,大约阅读时间需要 1 分钟。

1、题目描述

    给定一棵二叉树和二叉树中的两个节点,找出这两个节点的公共祖先节点。例如:

                                                 

    给定两个节点p = 5, q = 4,那么p和q的最小的公共祖先节点为5。

2、解题思路

    可以分别使用两个数组来保存从根节点到给定的两个节点的路径值,然后再从路径中找出最后一个相同的路径,即为这两个节点的最小公共祖先节点。代码如下:

vector
p_array;vector
q_array;vector
temp; TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(root==nullptr) return nullptr; find(root,p,q); int i; for(i = 0;i
left) find(root->left,p,q); if(root->right) find(root->right,p,q); temp.pop_back();}

 

上一篇:对单链表的排序(LeetCode-148)
下一篇:二叉树的最大路径和(LeetCode-124)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月17日 03时05分46秒