南宁 建网站,网上开店的货源渠道有哪些,学c++哪个线上机构好,做经营性的网站需要注册什么条件代码随想三刷二叉树篇4 617. 合并二叉树题目代码 700. 二叉搜索树中的搜索题目代码 98. 验证二叉搜索树题目代码 530. 二叉搜索树的最小绝对差题目代码 501. 二叉搜索树中的众数题目代码 236. 二叉树的最近公共祖先题目代码 617. 合并二叉树
题目
链接
代码
/*** Definitio… 代码随想三刷二叉树篇4 617. 合并二叉树题目代码 700. 二叉搜索树中的搜索题目代码 98. 验证二叉搜索树题目代码 530. 二叉搜索树的最小绝对差题目代码 501. 二叉搜索树中的众数题目代码 236. 二叉树的最近公共祖先题目代码 617. 合并二叉树
题目
链接
代码
/*** 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 mergeTrees(TreeNode root1, TreeNode root2) {if(root1nullroot2null){return null;}if(root1null){return root2;}if(root2null){return root1;}root1.val root2.val;TreeNode left mergeTrees(root1.left,root2.left);TreeNode right mergeTrees(root1.right,root2.right);root1.left left;root1.right right;return root1;}
}700. 二叉搜索树中的搜索
题目
链接
代码
/*** 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 searchBST(TreeNode root, int val) {if(rootnull){return null;}if(root.valval){return root;}if(valroot.val){return searchBST(root.right,val);}else{return searchBST(root.left,val);}}
}98. 验证二叉搜索树
题目
链接
代码
/*** 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 boolean isValidBST(TreeNode root) {traverse(root);return isValidBST;}boolean isValidBST true;TreeNode pre null;public void traverse(TreeNode root){if(rootnull||!isValidBST){return;}traverse(root.left);if(pre!nullpre.valroot.val){isValidBST false;}pre root;traverse(root.right);}
}530. 二叉搜索树的最小绝对差
题目
链接
代码
/*** 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 int getMinimumDifference(TreeNode root) {traverse(root);return minNumInteger.MAX_VALUE?0:minNum;}TreeNode pre null;int minNum Integer.MAX_VALUE;public void traverse(TreeNode root){if(rootnull){return;}traverse(root.left);if(pre!null){minNum Math.min(minNum,root.val-pre.val);}pre root;traverse(root.right);}
}501. 二叉搜索树中的众数
题目
链接
代码
/*** 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 int[] findMode(TreeNode root) {traversal(root);pq.offer(new int[]{cur,count});//最后一次没有添加ListInteger result new ArrayList();int maxCount 0;while(!pq.isEmpty()){int[] temp pq.poll();if(temp[1]maxCount){maxCount temp[1];result.add(temp[0]);}else{break;}}return result.stream().mapToInt(i-i).toArray();}PriorityQueueint[] pq new PriorityQueue((e1,e2)-e2[1]-e1[1]);int cur 0;int count 0;TreeNode pre null;public void traversal(TreeNode root){if(rootnull){return;}traversal(root.left);if(prenull){cur root.val;count;}else{if(cur root.val){count;}else{pq.offer(new int[]{cur,count});cur root.val;count 1;}}pre root;traversal(root.right);}
}236. 二叉树的最近公共祖先
题目
链接
代码
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(rootnull||rootp||rootq){return root;}TreeNode left lowestCommonAncestor(root.left,p,q);TreeNode right lowestCommonAncestor(root.right,p,q);if(leftnullrightnull){return null;}else if(left!nullrightnull){return left;}else if(right!nullleftnull){return right;}else {return root;}}}