1. /**
    2. * Definition for a binary tree node.
    3. * public class TreeNode {
    4. * int val;
    5. * TreeNode left;
    6. * TreeNode right;
    7. * TreeNode() {}
    8. * TreeNode(int val) { this.val = val; }
    9. * TreeNode(int val, TreeNode left, TreeNode right) {
    10. * this.val = val;
    11. * this.left = left;
    12. * this.right = right;
    13. * }
    14. * }
    15. */
    16. class Solution {
    17. public TreeNode insertIntoBST(TreeNode root, int val) {
    18. //如果检索到当前是空了,说明找到需要插入的位置了,那么就返回一个新创建的treenode结点
    19. if(root == null){
    20. return new TreeNode(val);
    21. }
    22. //如果这个val 大于 当前结点的val,说明他该去右子树去插入
    23. if(root.val < val){
    24. root.right = insertIntoBST(root.right,val);
    25. }else {
    26. //否则,说明val小于当前结点,说明该去左子树插入
    27. root.left = insertIntoBST(root.left,val);
    28. }
    29. //最后返回root结点
    30. return root;
    31. }
    32. }