标签:获取 add stat 方式 color lin turn smb back
二叉树的遍历方式常见的三种是:先序遍历(ABC)、中序遍历(BAC)、后序遍历(BCA)
先序遍历:
若二叉树为空,则空操作;否则:
中序遍历:
若二叉树为空,则空操作;否则:
后序遍历:
若二叉树为空,则空操作;否则:
在学习到 根据遍历序列确定二叉树 时,知道了:可以通过二叉树的先中或者中后遍历序列唯一确定一棵二叉树。
根据算法描述 使用java 码出依据中后遍历序列来获取先序遍历序列的代码:
1 package learn.normalcode; 2 3 import java.util.ArrayList; 4 5 public class BlankD { 6 public static ArrayList<Character> ansList = new ArrayList<>(11); 7 //通过二叉树的中序序列和后序序列获取前序序列 8 public static void getAns(String middle, String back) { 9 //后序序列的最后一个结点为根结点 10 int backLength = back.length(), middleLength = middle.length(); 11 char c = ‘#‘; 12 if (backLength > 0) { 13 c = back.charAt(backLength - 1); 14 ansList.add(c); 15 16 //从中/后序序列中分裂出左右子树的中/后序序列 17 int indexOfRoot = middle.indexOf(c); 18 getAns(middle.substring(0, indexOfRoot), back.substring(0, indexOfRoot)); 19 getAns(middle.substring(indexOfRoot + 1, middleLength), back.substring(indexOfRoot, backLength - 1)); 20 } 21 return; 22 23 } 24 public static void main(String[] args) { 25 String middle = "SMBDCEAFHG", back = "MSDECBHGFA"; 26 getAns(middle, back); 27 System.out.println(ansList); 28 29 ansList.clear(); 30 middle = "DCBA"; 31 back = "DCBA"; 32 getAns(middle, back); 33 System.out.println(ansList); 34 35 ansList.clear(); 36 middle = "SMBDCEA"; 37 back = "MSDECBA"; 38 getAns(middle, back); 39 System.out.println(ansList); 40 } 41 }
标签:获取 add stat 方式 color lin turn smb back
原文地址:https://www.cnblogs.com/orzt/p/11529865.html