下面是一个使用递归的例子,以中序遍历二叉树为例:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
this.left = null;
this.right = null;
}
}
public class BinaryTreeTraversal {
public void inorderTraversal(TreeNode root) {
if (root != null) {
inorderTraversal(root.left);
System.out.print(root.val + " ");
inorderTraversal(root.right);
}
}
public static void main(String[] args) {
/*
1
/ \
2 3
/ \
4 5
*/
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
BinaryTreeTraversal btt = new BinaryTreeTraversal();
System.out.println("Inorder traversal:");
btt.inorderTraversal(root);
}
}
输出结果为:4 2 5 1 3,表示中序遍历的结果。
你也可以根据需要修改代码实现其他遍历方式,比如前序遍历和后序遍历。