
中序遍历:
java
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> tree=new ArrayList<>(); //建立一个动态数组
inorder(root,tree); //调用递归函数,实参
return tree;
}
public void inorder(TreeNode root, List<Integer> tree){
// TreeNode root,List<Interger> tree都是传入的形参
if(root==null){
return;
}
inorder(root.left,tree); //遍历左子树
tree.add(root.val); //将当前值加入动态数组中
inorder(root.right,tree); //遍历右子树
}
}
前序遍历
java
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> tree =new ArrayList<Integer>();
PreOrder(root,tree);
return tree;
}
public void PreOrder(TreeNode root, List<Integer> tree){
if(tree==null){
return;}
tree.add(root.val);
PreOrder(root.left,tree);
PreOrder(root.right,tree);
}
}
}
后序遍历
java
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> tree =new ArrayList<Integer>();
PostOrder(root,tree);
return tree;
}
public void PostOrder(TreeNode root, List<Integer> tree){
if(tree==null){
return;}
PostOrder(root.left,tree);
PostOrder(root.right,tree);
tree.add(root.val);
}
}
}