Java二叉树的构造和遍历方法是什么
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天小编给大家分享一下Java二叉树的构造和遍历方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2026年11月02日Java二叉树的构造和遍历方法是什么
今天小编给大家分享一下Java二叉树的构造和遍历方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
题目一

解法
/** * 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 constructMaximumBinaryTree(int[] nums) { return method(nums,0,nums.length-1); } public TreeNode method(int[] nums,int lo,int hi){ if(lo>hi){ return null; } int index = -1; int max = Integer.MIN_VALUE; for(int i = lo;i<=hi;i++){ if(max题目二
解法
/** * 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 buildTree(int[] preorder, int[] inorder) { return method(preorder,0,preorder.length-1,inorder,0,inorder.length-1); } public TreeNode method(int[] preorder, int preLeft,int preEnd , int[] inorder,int inLeft,int inEnd){ if(preLeft>preEnd){ return null; } int rootVal = preorder[preLeft]; int index = -1; for(int i = inLeft;i<=inEnd;i++){ if(rootVal == inorder[i]){ index = i; } } TreeNode root = new TreeNode(rootVal); int leftSize = index - inLeft; root.left = method(preorder,preLeft+1,leftSize+preLeft,inorder,inLeft,index-1); root.right = method(preorder,leftSize+preLeft+1,preEnd,inorder,index+1,inEnd); return root; }}题目三

解法
/** * 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 buildTree(int[] inorder, int[] postorder) { return build(inorder,0,inorder.length-1,postorder,0,postorder.length-1); } TreeNode build(int[] inorder, int inStart, int inEnd,int[] postorder, int postStart, int postEnd) { if (inStart > inEnd) { return null; } // root 节点对应的值就是后序遍历数组的最后一个元素 int rootVal = postorder[postEnd]; // rootVal 在中序遍历数组中的索引 int index = 0; for (int i = inStart; i <= inEnd; i++) { if (inorder[i] == rootVal) { index = i; break; } } // 左子树的节点个数 int leftSize = index - inStart; TreeNode root = new TreeNode(rootVal); // 递归构造左右子树 root.left = build(inorder, inStart, index - 1,postorder, postStart, postStart + leftSize - 1); root.right = build(inorder, index + 1, inEnd,postorder, postStart + leftSize, postEnd - 1); return root;}}题目四
解法
/** * 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 constructFromPrePost(int[] preorder, int[] postorder) { return method(preorder,0,preorder.length-1,postorder,0,postorder.length-1); } public TreeNode method(int[] preorder,int preStart, int preEnd, int[] postorder,int postStart,int postEnd){ if(preStart>preEnd){ return null; } if(preStart==preEnd){ return new TreeNode(preorder[preStart]); } int rootVal = preorder[preStart]; int leftRootVal = preorder[preStart + 1]; int index = 0; for (int i = postStart; i < postEnd; i++) { if (postorder[i] == leftRootVal) { index = i; break; } } TreeNode root = new TreeNode(rootVal); int leftSize = index - postStart + 1; root.left = method(preorder, preStart + 1, preStart + leftSize,postorder, postStart, index); root.right = method(preorder, preStart + leftSize + 1, preEnd,postorder, index + 1, postEnd - 1); return root; }}以上就是"Java二叉树的构造和遍历方法是什么"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
知识
篇文章
解法
题目
方法
内容
就是
数组
节点
子树
不同
很大
个数
元素
大部分
更多
知识点
索引
行业
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苏州找大状互联网科技有限公司
北京路客互联网科技有限公司
互联网科技垄断
互联网最新的科技有限公司
互联网科技的英文
未来的互联网科技
唐信互联网科技 大连
融贸通互联网科技
天速互联网络科技有限公司
上海宁丞科技互联网
互联网科技人工智能实验室
工业互联网等科技实现智能化赋能
恒生互联网科技业指数调整周期
伍佰万互联网科技怎么赚钱
银行科技岗属于互联网吗
易企秀互联网科技是做什么的
广东鹅鹅鹅互联网科技有限公司
张家口科技产业互联网平台
保山互联网科技靠谱吗
互联网的科技体现在哪里
上海喔噻互联网科技有限公司
哈尔滨大商圈互联网科技有限公司
A股互联网金融科技公司
米客互联网科技
互联网科技有限公司 翻译
上海电发互联网科技有限公司
团飞科技与伯堂互联网服务平台
玉溪新华互联网科技好不好
江苏互联网科技小贷
现代互联网科技公司