[LeetCode]235. Lowest Common Ancestor of a Binary Search Tree

xiaoxiao2021-02-28  65

[LeetCode]235. Lowest Common Ancestor of a Binary Search Tree

题目描述

思路

因为是二叉搜索树,因此如果两个节点的值都小于(或大于)当前节点,则需要移动当前节点到左(或右)子节点

代码

#include <iostream> using namespace std; struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; class Solution { public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if (p->val < root->val && q->val < root->val) return lowestCommonAncestor(root->left, p, q); if (p->val > root->val && q->val > root->val) return lowestCommonAncestor(root->right, p, q); return root; } }; int main() { TreeNode* node1 = new TreeNode(6); TreeNode* node2 = new TreeNode(2); TreeNode* node3 = new TreeNode(8); node1->left = node2; node1->right = node3; Solution s; cout << s.lowestCommonAncestor(node1, node2, node3)->val << endl; system("pause"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-44310.html

最新回复(0)