题目:
思路:
https://zhuanlan.zhihu.com/p/272781596
代码:
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
return process(root,val);
}
//递归
public TreeNode process(TreeNode root,int val){
//base case 来到null 位置,创建出节点
if(root == null){
return new TreeNode(val);
}
//寻找创建的位置,
if(root.val > val){
root.left = process(root.left,val);
}
//寻找创建的位置,
if(root.val < val){
root.right = process(root.right,val);
}
return root; // 这里是精妙之处,其实遍历的过程中,返回了root,对于普通节点,入传入的root.left,返回仍然是root.left
}
}