• [GeeksForGeeks] Get postorder traversal sequence from given inorder and preorder traversal.


    Given Inorder and Preorder traversals of a binary tree, print Postorder traversal.

    Example:

    Input:
    Inorder traversal in[] = {4, 2, 5, 1, 3, 6}
    Preorder traversal pre[] = {1, 2, 4, 5, 3, 6}
    
    Output:
    Postorder traversal is {4, 5, 2, 6, 3, 1}

    A naive solution is to first construct the given tree, then recursively traverse it in post order.

    A better solution is to acheive this without having to construct the given tree first.

     1 import java.util.ArrayList;
     2 
     3 public class getPostorder {
     4     public ArrayList<Integer> getPostorderSeq(int[] in, int[] pre) {
     5         if(in == null || pre == null || in.length != pre.length || in.length == 0) {
     6             return null;
     7         }
     8         ArrayList<Integer> post = new ArrayList<Integer>();        
     9         helper(in, 0, in.length - 1, pre, 0, pre.length - 1, post);
    10         return post;
    11     }
    12     private void helper(int[] in, int in_start, int in_end,
    13                         int[] pre, int pre_start, int pre_end,
    14                         ArrayList<Integer> post) {
    15         if(in_start > in_end) {
    16             return;
    17         }
    18         int rootIdx = pre_start;
    19         int inOrderRootIdx = in_start;
    20         for(; inOrderRootIdx <= in_end; inOrderRootIdx++) {
    21             if(pre[rootIdx] == in[inOrderRootIdx]) {
    22                 break;
    23             }
    24         }
    25         helper(in, in_start, inOrderRootIdx - 1, pre,  pre_start + 1, pre_start + inOrderRootIdx - in_start, post);
    26         helper(in, inOrderRootIdx + 1, in_end, pre, pre_end - in_end + inOrderRootIdx + 1, pre_end, post);
    27         post.add(pre[rootIdx]);
    28     }
    29 }



  • 相关阅读:
    kafka 官方 Quickstart
    oracle11.2 安装
    Perl参考函数/教程
    Mysql参见SHOW命令总结
    MySQL的Innodb缓存相关优化
    Oracle、Mysql和SQL Server数据库连接的URL写法
    jredis 客户端 使用
    sql基本命令-存储过程
    NoSql系列目录ElasticSearch-mongodb
    loadrunner 运行场景-Controller及Load Generators宿主主机优化
  • 原文地址:https://www.cnblogs.com/lz87/p/7407431.html
Copyright © 2020-2023  润新知