下面是一個(gè)使用遞歸的例子,以中序遍歷二叉樹(shù)為例:
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);
}
}
輸出結(jié)果為:4 2 5 1 3,表示中序遍歷的結(jié)果。
你也可以根據(jù)需要修改代碼實(shí)現(xiàn)其他遍歷方式,比如前序遍歷和后序遍歷。