二叉树oj ----> 二叉树的构建及遍历
Posted ohana!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树oj ----> 二叉树的构建及遍历相关的知识,希望对你有一定的参考价值。
题目内容:
解题代码:
import java.util.*;
public class Main{
public class TreeNode{
char value;
TreeNode left;
TreeNode right;
public TreeNode(char value){
this.value = value;
}
}
//给一个方法,给创建二叉树的方法包装一下
TreeNode root;
int index = 0;
public void createBinaryTreeTest(String str,char invalid){
index = 0;
root = createBinaryTree(str,invalid);
}
// 创建二叉树
public TreeNode createBinaryTree(String str,char invalid){
TreeNode treeRoot = null;
if(index < str.length() && str.charAt(index)!= invalid){
treeRoot = new TreeNode(str.charAt(index));
++index;
treeRoot.left = createBinaryTree(str,invalid);
++index;
treeRoot.right = createBinaryTree(str,invalid);
}
return treeRoot;
}
public void inOrder(){
inOrder(root);
}
//中序遍历
public void inOrder(TreeNode treeRoot){
if(treeRoot == null){
return;
}
Stack<TreeNode> s = new Stack<>();
TreeNode cur = treeRoot;
while(!s.empty() || cur != null){
while(cur != null){
s.push(cur);
cur = cur.left;
}
cur = s.pop();
System.out.print(cur.value + " ");
cur = cur.right;
}
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String str = sc.nextLine();
Main m = new Main();
m.createBinaryTreeTest(str,'#');
m.inOrder();
}
}
}
解题步骤:
- 首先给出树节点, 结点值的类
- 给出构建二叉树的方法
- 给出中序遍历的方法(不论是递归还是非递归都可以)
以上是关于二叉树oj ----> 二叉树的构建及遍历的主要内容,如果未能解决你的问题,请参考以下文章
二叉树进阶题------二叉树的构建及遍历;二叉搜索树转换成排序双向链表;二叉树创建字符串
二叉树进阶题------二叉树的构建及遍历;二叉搜索树转换成排序双向链表;二叉树创建字符串