算法刷题——二叉树部分操作(翻转二叉树,平衡二叉树,最大深度)
创始人
2024-03-07 17:56:50

 翻转二叉树



package 二叉树.反转二叉树;import 二叉树.TreeNode;import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;public class Solution {public static void main(String[] args) {TreeNode root=new TreeNode(1);TreeNode node2=new TreeNode(2);TreeNode node3=new TreeNode(3);TreeNode node4=new TreeNode(4);TreeNode node5=new TreeNode(5);TreeNode node6=new TreeNode(6);TreeNode node7=new TreeNode(7);TreeNode node8=new TreeNode(8);root.setLeft(node2);root.setRight(node3);node2.setLeft(node4);node2.setRight(node5);node3.setRight(node6);node5.setLeft(node7);node5.setRight(node8);System.out.println(root);List integers=new ArrayList<>();inorderTraversal(root,integers);System.out.println(integers);List newRootIntegers=new ArrayList<>();TreeNode newRoot=invertTree(root);inorderTraversal(newRoot,newRootIntegers);System.out.println(newRootIntegers);}public static TreeNode invertTree(TreeNode root) {TreeNode node=null;if (root==null){return null;}invertTree(root.left);invertTree(root.right);node=root.right;root.right=root.left;root.left=node;return root;}public static void inorderTraversal(TreeNode root,List integers ){if (root==null){return;}inorderTraversal(root.left,integers);integers.add(root.val);inorderTraversal(root.right,integers);}}

 

 二叉树最大深度

 力扣

package 二叉树.最大深度;import 二叉树.TreeNode;import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;public class Solution {public static void main(String[] args) {TreeNode root=new TreeNode(1);TreeNode node2=new TreeNode(2);TreeNode node3=new TreeNode(3);TreeNode node4=new TreeNode(4);TreeNode node5=new TreeNode(5);TreeNode node6=new TreeNode(6);TreeNode node7=new TreeNode(7);TreeNode node8=new TreeNode(8);root.setLeft(node2);root.setRight(node3);node2.setLeft(node4);node2.setRight(node5);node3.setRight(node6);node5.setLeft(node7);node5.setRight(node8);
//        int max = maxDepth(root);int max = maxDepthMethodForLoop(root);System.out.println("----------二叉树最大深度为------"+max);}public static int maxDepth(TreeNode root) {int deep=0;if(root==null){return 0;}else{return Math.max( maxDepth(root.right), maxDepth(root.left))+1;}}public static int maxDepthMethodForLoop(TreeNode root) {int deep=0;Queue queue=new LinkedList<>();queue.offer(root);while (!queue.isEmpty()){int size=queue.size();while (size>0){TreeNode treeNode=queue.poll();if(treeNode.left!=null){queue.offer(treeNode.left);}if(treeNode.right!=null){queue.offer(treeNode.right);}System.out.println(queue);System.out.println(queue.size());System.out.println(size);size--;}deep++;}return deep;}}

平衡二叉树

力扣​​​​​​​

package 二叉树.平衡二叉树;import 二叉树.TreeNode;import java.util.ArrayList;
import java.util.List;public class Solution {public static void main(String[] args) {TreeNode root=new TreeNode(1);TreeNode node2=new TreeNode(2);TreeNode node3=new TreeNode(3);TreeNode node4=new TreeNode(4);TreeNode node5=new TreeNode(5);TreeNode node6=new TreeNode(6);TreeNode node7=new TreeNode(7);TreeNode node8=new TreeNode(8);root.setLeft(node2);root.setRight(node3);node2.setLeft(node4);node2.setRight(node5);node3.setRight(node6);node5.setLeft(node7);node5.setRight(node8);int balanced = isBalanced(root);System.out.println(balanced);}public static int isBalanced(TreeNode root) {if(root==null){return 0;}int left=isBalanced(root.left);int right=isBalanced(root.right);System.out.println(left);System.out.println(right);if(left==-1||right==-1||Math.abs(left-right)>1){return -1;}return Math.max(left,right)+1;}}

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...