首页 > 其他分享 >NC 实现二叉树先序,中序和后序遍历

NC 实现二叉树先序,中序和后序遍历

时间:2024-08-06 19:55:26浏览次数:15  
标签:遍历 TreeNode int 中序 NC list 二叉树 root public

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
给定一棵二叉树,分别按照二叉树先序,中序和后序打印所有的节点。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 the root of binary tree
     * @return int整型二维数组
     */
    public int[][] threeOrders (TreeNode root) {
       //三个集合,分别存储三种遍历结果
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();
        List<Integer> list3 = new ArrayList<>();

        //调用函数计算遍历结果
        preOrder(root, list1);
        inOrder(root, list2);
        postOrder(root, list3);

        //存放结果集
        int[][] res = new int[3][list1.size()];
        for(int i = 0; i < list1.size(); i++){
            res[0][i] = list1.get(i);
            res[1][i] = list2.get(i);
            res[2][i] = list3.get(i);

        }
        //答案返回
        return res;
    }
    // 先序遍历函数
    public void preOrder(TreeNode root, List<Integer> list){
        //特判
        if(root == null){
            return;
        }
        //对左右子树进行递归的遍历
        list.add(root.val);
        preOrder(root.left, list);
        preOrder(root.right, list);
    }

    // 中序遍历函数
    public void inOrder(TreeNode root, List<Integer> list){
        //特判
        if(root == null){
            return;
        }
       //递归调用:对左右子树进行递归的遍历
        inOrder(root.left, list);
        list.add(root.val);
        inOrder(root.right, list);
    }

    // 后序遍历函数
    public void postOrder(TreeNode root, List<Integer> list){
        if(root == null){
            return;
        }
        //递归调用:对左右子树进行递归的遍历
        postOrder(root.left, list);
        postOrder(root.right, list);
        list.add(root.val);
    }

}

标签:遍历,TreeNode,int,中序,NC,list,二叉树,root,public
From: https://blog.csdn.net/pleaseprintf/article/details/140896206

相关文章

  • NC 没有重复项数字的全排列
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。描述给出一组数字,返回该组数字的所有排列例如:[1,2,3]的所有排列如下[......
  • [Typescript] Typing Functions with Object Params
    import{expect,it,vitest}from'vitest';constlogId=(obj:{id:string})=>{console.log(obj.id);};constlogName=(obj:{name:string})=>{console.log(obj.name);};constloggers=[logId,logName];constlogAll=(o......
  • 串行通信协议--UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器
    一、UART简介  UART广泛应用于微控制器和计算机之间的数据通信,如GPS模块、蓝牙模块、GSM模块等。UART是一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信UART通常被集成于其他通讯接口的连结上。UA......
  • [Typescript] Understanding TypeScript's Function Parameter Comparisons
    Makethosepass:import{Equal,Expect}from"@total-typescript/helpers";typeEvent="click"|"hover"|"scroll";typeCallbackType=unknown;constlistenToEvent=(callback:CallbackType)=>{};listen......
  • 5G-Advanced R18 中 RedCap放宽 Msg2-Msg3 时间线理解
    在5G网络中,随机接入过程(RandomAccessProcedure)是用户设备(UE)首次接入或重连到网络的关键过程。这一过程包括多个步骤,其中Msg2和Msg3是其中的两个重要信令消息。在5G-AdvancedR18中,为了适应低复杂度设备(如RedCap设备)的需求,Msg2-Msg3时间线被适当放宽,以提供更灵活的资源调度......
  • Day21 二叉树Part8
    目录任务669.修剪二叉搜索树思路108.将有序数组转换为二叉搜索树思路538.把二叉搜索树转换为累加树思路心得体会任务669.修剪二叉搜索树给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值在[low,high]中。修剪树不......
  • ComfyUI插件:efficiency-nodes-comfyui节点
    前言:学习ComfyUI是一场持久战,efficiency-nodes-comfyui是提高工作流创造效率的工具,包含效率节点整合工作流中的基础功能,比如EfficientLoader节点相当于LoadCheckpoint+Clipsetlayer+LoadVAE等等的合集,并且该插件提供了更加简便快捷的X/Y对比图,能够使测评工作的效率进一步提......
  • Function Calling + LangChain 拉通业务系统的技术架构
    近年来,大型语言模型(LLMs)如GPT-4的发展极大地推动了自然语言处理(NLP)领域的进步。这些模型在内容生成、语言翻译和对话系统等多个应用中展示了其强大的能力。然而,传统语言模型的局限性在于它们只能进行语言生成,无法与外部系统、API或自定义函数进行交互。本文将介绍如何通过Fu......
  • kotlin 与java 接口不兼容@FunctionalInterface
    需求:获取当前方法名为了获取当前方法名已知的有1.堆栈获取2.通过classs的enclosingMethod.name比较准确的是enclosingMethod,但是为了获取这个还需要一个内部类,于是用到了Runable,但是run方法没有返回值于是出现了神奇问题1.照Runnable抄一份:源码如下:@FunctionalInterfacepu......
  • 手撕数据结构之二叉树
     1.树树的基本概念与结构树是⼀种⾮线性的数据结构,它是由n(n>=0)个有限结点组成⼀个具有层次关系的集合。把它叫做树是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。•有⼀个特殊的结点,称为根结点,根结点没有前驱结点。•除根结点外,其余结点被分成M(M>0)......