广告
返回顶部
首页 > 资讯 > 精选 >Java二叉树的构造和遍历方法是什么
  • 466
分享到

Java二叉树的构造和遍历方法是什么

2023-06-29 14:06:21 466人浏览 安东尼
摘要

今天小编给大家分享一下Java二叉树的构造和遍历方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。题目一 解

今天小编给大家分享一下Java二叉树的构造和遍历方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

题目一

Java二叉树的构造和遍历方法是什么

 解法

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<nums[i]){                max = nums[i];                index = i;            }        }        TreeNode root = new TreeNode(max);        root.left = method(nums,lo,index-1);        root.right = method(nums,index+1,hi);        return root;    }}

题目二

Java二叉树的构造和遍历方法是什么

 解法

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;    }}

题目三

Java二叉树的构造和遍历方法是什么

 解法

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;}}

题目四

Java二叉树的构造和遍历方法是什么

 解法

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二叉树的构造和遍历方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Java二叉树的构造和遍历方法是什么

本文链接: https://www.lsjlt.com/news/325329.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java二叉树的构造和遍历方法是什么
    今天小编给大家分享一下Java二叉树的构造和遍历方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。题目一 解...
    99+
    2023-06-29
  • Java实现二叉树的遍历方法是什么
    本篇内容主要讲解“Java实现二叉树的遍历方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现二叉树的遍历方法是什么”吧!遍历二叉树遍历或称周游,traversal。系统地访问数...
    99+
    2023-06-19
  • Java 二叉树遍历的常用方法
    目录递归方式非递归方式层次遍历总结采用前序遍历、中序遍历、后续遍历实现时,即便采用不同的实现方式(递归方式、非递归),它们的算法结构是有很大的相似性。因而针对前三种的遍历我们会总结出...
    99+
    2022-11-12
  • Java二叉树的递归和非递归遍历方法是什么
    本篇内容主要讲解“Java二叉树的递归和非递归遍历方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java二叉树的递归和非递归遍历方法是什么”吧!前言二叉树的遍历方法分为前序遍历,中序遍...
    99+
    2023-06-30
  • 剑指Offer之Java算法习题精讲二叉树的构造和遍历
    题目一 二叉树题——最大二叉树 根据给定的数组来构建最大二叉树 具体题目如下  解法 class Solution { public T...
    99+
    2022-11-13
  • Python实现二叉树结构与进行二叉树遍历的方法详解
    二叉树的建立 使用类的形式定义二叉树,可读性更好 class BinaryTree: def __init__(self, root): self.key = root sel...
    99+
    2022-06-04
    二叉树 遍历 详解
  • Java中二叉树遍历的常用方法有哪些
    这篇文章给大家分享的是有关Java中二叉树遍历的常用方法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。采用前序遍历、中序遍历、后续遍历实现时,即便采用不同的实现方式(递归方式、非递归),它们的算法结构是有很...
    99+
    2023-06-15
  • C++ LeeCode二叉树的中序遍历是什么
    这篇文章主要介绍了C++ LeeCode二叉树的中序遍历是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++ LeeCode二叉树的中序遍历是什么文章都会有所收获,下面我们一起来看看吧。一、题目二、代码c...
    99+
    2023-06-19
  • C语言二叉树的遍历方法怎么实现
    这篇文章主要介绍“C语言二叉树的遍历方法怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言二叉树的遍历方法怎么实现”文章能帮助大家解决问题。     在本算法...
    99+
    2023-06-26
  • Java完全二叉树的创建与四种遍历方法分析
    本文实例讲述了Java完全二叉树的创建与四种遍历方法。分享给大家供大家参考,具体如下:有如下的一颗完全二叉树:先序遍历结果应该为:1  2  4  5  3  6  7中序遍历结果...
    99+
    2023-05-30
    java 二叉树 ava
  • Python利用前序和中序遍历结果重建二叉树的方法
    本文实例讲述了Python利用前序和中序遍历结果重建二叉树的方法。分享给大家供大家参考,具体如下: 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含...
    99+
    2022-06-04
    遍历 方法 二叉树
  • Java开发深入分析讲解二叉树的递归和非递归遍历方法
    目录前言1.递归遍历2.非迭代遍历3.二叉树的统一迭代法前言 二叉树的遍历方法分为前序遍历,中序遍历,后续遍历,层序遍历。 1.递归遍历 对于递归,就不得不说递归三要素:以前序遍历...
    99+
    2022-11-13
  • php实现二叉树的方法是什么
    这篇“php实现二叉树的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php实现二叉树的方法是什么”文章吧。什么是...
    99+
    2023-07-05
  • Java遍历树深度优先和广度优先的方法是什么
    这篇文章主要介绍了Java遍历树深度优先和广度优先的方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java遍历树深度优先和广度优先的方法是什么文章都会有所收获,下面我们一起来看看吧。在编程生活中,我们...
    99+
    2023-07-05
  • java四则运算和二叉树的关系是什么
    今天小编给大家分享一下java四则运算和二叉树的关系是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。引言前几天忽然想到了...
    99+
    2023-07-05
  • java jsonarray遍历优化的方法是什么
    在Java中遍历JSONArray有几种优化方法,以下是其中一些常见的方法:1. 使用增强for循环:可以使用增强for循环来遍历J...
    99+
    2023-10-19
    java
  • java迭代器遍历的方法是什么
    Java迭代器遍历的方法是使用while循环和迭代器的`hasNext()`和`next()`方法进行遍历。具体步骤如下:1. 创建...
    99+
    2023-08-11
    java
  • java map遍历删除的方法是什么
    在Java中,可以使用迭代器(Iterator)来遍历并删除Map中的元素。具体步骤如下:1. 使用Map的keySet()方法获取...
    99+
    2023-08-28
    java map
  • php二维数组遍历输出的方法是什么
    PHP中遍历二维数组有多种方法,以下是常用的几种方法:1. 使用嵌套的foreach循环遍历:php$array = array(a...
    99+
    2023-10-18
    php
  • Java中ArrayList类常用方法和遍历是什么
    Java中ArrayList类的常用方法包括:1. add(E element):向列表末尾添加一个元素。2. add(int in...
    99+
    2023-08-11
    Java ArrayList
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作