144. 二叉树的前序遍历
题目
给你二叉树的根节点 root
,返回它节点值的 前序 遍历。
解析
前序遍历,根左右。
Java代码实现
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
preorder(root, list);
return list;
}
private void preorder(TreeNode root, List<Integer> list) {
if (root == null) {
return;
}
list.add(root.val);
preorder(root.left,list);
preorder(root.right,list);
}
145. 二叉树的后序遍历
题目
给你一棵二叉树的根节点 root
,返回其节点值的 后序遍历 。
解析
后续遍历,左右根。
Java代码实现
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
postorder(root,list);
return list;
}
private void postorder(TreeNode root, List<Integer> list) {
if (root == null) {
return;
}
postorder(root.left,list);
postorder(root.right,list);
list.add(root.val);
}
94. 二叉树的中序遍历
题目
给定一个二叉树的根节点 root
,返回 它的 中序 遍历 。
解析
中序遍历,左右根。
Java代码实现
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
inorder(root,list);
return list;
}
private void inorder(TreeNode root, List<Integer> list) {
if (root == null) {
return;
}
inorder(root.left,list);
list.add(root.val);
inorder(root.right,list);
}