1、dfs
dfs递归版
public static void dfs(TreeNode root) {
if(root == null)
return;
System.out.println(root.val);
dfs(root.left);
dfs(root.right);
}
dfs迭代版
public static void dfs(TreeNode root) {
Stack<TreeNode> stack = new Stack<TreeNode>();
stack.add(root);
while(!stack.empty()) {
TreeNode node = stack.pop();
System.out.println(node.val);
if(node.right != null) //根据栈的特性所以右结点先入栈
stack.push(node.right);
if(node.left != null)
stack.push(node.left);
}
}
2、bfs迭代版
public static void bfs(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue