我新建的个人博客,欢迎访问:hmilzy.github.io
235. 二叉搜索树的最近公共祖先
题目链接: 二叉搜索树的最近公共祖先
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(root == null) { return null; } if(root.val > p.val && root.val > q.val) { TreeNode left = lowestCommonAncestor(root.left,p,q); if(left != null) { return left; } } if(root.val < p.val && root.val < q.val) { TreeNode right = lowestCommonAncestor(root.right,p,q); if(right != null) { return right; } } return root; } }
|
701.二叉搜索树中的插入操作
题目链接: 二叉搜索树中的插入操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
class Solution { public TreeNode insertIntoBST(TreeNode root, int val) { if(root == null) { return new TreeNode(val); }
if(root.val > val) { root.left = insertIntoBST(root.left,val); } if(root.val < val) { root.right = insertIntoBST(root.right,val); }
return root; } }
|
450.删除二叉搜索树中的节点
题目链接: 删除二叉搜索树中的节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
class Solution { public TreeNode deleteNode(TreeNode root, int key) { if(root == null) { return root; } if(root.val == key) { if(root.left == null) { return root.right; } else if(root.right == null) { return root.left; }else { TreeNode cur = root.right; while(cur.left != null) { cur = cur.left; } cur.left = root.left; root = root.right; return root; }
}
if(root.val > key) { root.left = deleteNode(root.left,key); } if(root.val < key) { root.right = deleteNode(root.right,key); } return root; } }
|