解法一
查找过程中记得记录父节点。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {if (root == null) {return new TreeNode(val);}TreeNode p = root;TreeNode parent = root;while (p != null) {parent = p;if (val > p.val) {p = p.right;} else {p = p.left;}}if (parent.val > val) {parent.left = new TreeNode(val);} else {parent.right = new TreeNode(val);}return root;}}
