前序遍历
可以简单的理解前序遍历是从上至下
void traverse(TreeNode root) {
if (root == null) return;
// 前序遍历的代码
traverse(root.left);
traverse(root.right);
}
中序遍历
void traverse(TreeNode root) {
if (root == null) return;
traverse(root.left);
// 中序遍历的代码
traverse(root.right);
}
后序遍历
可以简单的理解后序遍历是从下至上
void traverse(TreeNode root) {
if (root == null) return;
traverse(root.left);
traverse(root.right);
// 后序遍历的代码
}
层级遍历
void traverse(TreeNode root) {
if (root == null) return;
// 初始化队列,将 root 加入队列
Queue<TreeNode> q = new LinkedList<>();
q.offer(root);
while (!q.isEmpty()) {
TreeNode cur = q.poll();
/* 层级遍历代码位置 */
System.out.println(cur.val);
/*****************/
if (cur.left != null) {
q.offer(cur.left);
}
if (cur.right != null) {
q.offer(cur.right);
}
}
}
以上内容参考:手把手带你刷题