使用递归解决问题要明确递归函数的定义
235. 二叉搜索树的最近公共祖先
思路:从上往下搜索,第一个值在两者之间的节点就是符合要求的节点。
由于二叉搜索树有固定遍历顺序,所以写迭代也很方便。
701.二叉搜索树中的插入操作
思路:返回值是树的根节点,当传入的root==null时创建新节点插入。
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
if(root==null)
return new TreeNode(val);
if(val< root.val)
root.left=insertIntoBST(root.left,val);
else root.right=insertIntoBST(root.right,val);
return root;
}
}
450.删除二叉搜索树中的节点
一.要删除的节点分为五种情况
1.未找到符合要求的节点
2.找到的节点左右节点均为空
3.找到的节点左节点为空,右节点不为空
4.找到的节点右节点为空,左节点不为空
5.找到的节点左右节点均不为空
二.递归函数定义
返回删除了值为val的节点之后的根节点。