算法训练营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

}

相关推荐
小指纹8 分钟前
河南萌新联赛2025第(三)场:河南理工大学【补题】
数据结构·c++·算法·macos·ios·objective-c·cocoa
陈敬雷-充电了么-CEO兼CTO8 分钟前
从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门
人工智能·深度学习·算法·chatgpt·重构·transformer·agi
UP_Continue14 分钟前
算法讲解--最大连续1的个数
数据结构·算法·leetcode
_Orch1d32 分钟前
初识无监督学习-聚类算法中的K-Means算法,从原理公式到简单代码实现再到算法优化
python·学习·算法·机器学习·numpy·kmeans·聚类
设计师小聂!1 小时前
力扣热题100--------240.搜索二维矩阵
java·算法·leetcode·矩阵
yzzzzzzzzzzzzzzzzz2 小时前
leetcode热题——组合
算法·回溯·组合问题
RTC老炮2 小时前
webrtc弱网-QualityScaler 源码分析与算法原理
人工智能·算法·webrtc
柒柒的代码学习日记4 小时前
二叉树链式结构的遍历实现
数据结构·二叉树·链式结构
码破苍穹ovo7 小时前
堆----1.数组中的第K个最大元素
java·数据结构·算法·排序算法
愤怒的小鸟~~~7 小时前
c语言创建的一个队列结构(含有这个头指针和这个尾指针的结构具有一定的参考价值)
c语言·开发语言·算法