算法训练营day19,二叉树8-1

type TreeNode struct {

Val int

Left *TreeNode

Right *TreeNode

}

235. 二叉搜索树的最近公共祖先

//本题比昨天236二叉树的最近公共祖先 要容易一些,因为二叉搜索树是有序的

func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {

if root == nil {

return root

}

//如果p,q比root小,说明在左子树,向左移动

if root.Val > p.Val && root.Val > q.Val {

return lowestCommonAncestor(root.Left, p, q)

//如果p,q比root大,说明在右子树,向右移动

} else if root.Val < p.Val && root.Val < q.Val {

return lowestCommonAncestor(root.Right, p, q)

} else {

return root

}

}

//701. 二叉搜索树中的插入操作

// 因为二叉搜索树是有序的可以按val值大小进行移动

func insertIntoBST(root *TreeNode, val int) *TreeNode {

cur := &TreeNode{Val: val}

if root == nil {

return cur

}

// val比root值小向左移动

if root.Val > val {

root.Left = insertIntoBST(root.Left, val)

// val比root值大向右移动

} else if root.Val < val {

root.Right = insertIntoBST(root.Right, val)

}

return root

}

相关推荐
鱼很腾apoc4 小时前
【学习篇】第20期 超详解 C++ 多态:从语法规则到底层原理
java·c语言·开发语言·c++·学习·算法·青少年编程
小许同学记录成长5 小时前
三维重建技术文档
算法·无人机
小O的算法实验室7 小时前
2026年ASOC,基于多目标优化去噪双存档进化算法+路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
2601_954526757 小时前
逆向解析Temu底层动销算法:基于API高并发轮询与全域存量透视的自动化架构重构
算法·架构·自动化
Σίσυφος19008 小时前
数据标准化(拟合的时候使用非常重要)
人工智能·算法
knight_9___8 小时前
大模型project面试7
人工智能·python·算法·面试·大模型·agent
NashSKY9 小时前
EM 算法完整推导与本质剖析
算法·机器学习·概率论
foundbug9999 小时前
MATLAB实现:基于图像对比度和波段相关性的高光谱波段选择算法
开发语言·算法·matlab
嘿嘿嘿x39 小时前
Linux-实践
linux·运维·算法