都是采用递归实现,基本上是一个代码,只是改了一下方法名称。
一、前序遍历
https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635
import java.util.ArrayList;
import java.util.List;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public int[] preorderTraversal (TreeNode root) {
List<Integer> list = new ArrayList<>();
preorder(list, root);
int[] res = new int [list.size()];
for (int i = 0; i < list.size(); i++)
res[i] = list.get(i);
return res;
}
//前序遍历
public void preorder(List<Integer> l, TreeNode t) {
if (t == null) return;
l.add(t.val);
preorder(l, t.left);
preorder(l, t.right);
}
}
二、中序遍历
https://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d
import java.util.ArrayList;
import java.util.List;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public int[] inorderTraversal (TreeNode root) {
List<Integer> list = new ArrayList<>();
inorder(list, root);
int[] res = new int [list.size()];
for (int i = 0; i < list.size(); i++)
res[i] = list.get(i);
return res;
}
//中序遍历
public void inorder(List<Integer> l, TreeNode t) {
if (t == null) return;
inorder(l, t.left);
l.add(t.val);
inorder(l, t.right);
}
}
三、后序遍历
https://www.nowcoder.com/practice/1291064f4d5d4bdeaefbf0dd47d78541
import java.util.ArrayList;
import java.util.List;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public int[] postorderTraversal (TreeNode root) {
List<Integer> list = new ArrayList<>();
postorder(list, root);
int[] res = new int [list.size()];
for (int i = 0; i < list.size(); i++)
res[i] = list.get(i);
return res;
}
//后序遍历
public void postorder(List<Integer> l, TreeNode t) {
if (t == null) return;
postorder(l, t.left);
postorder(l, t.right);
l.add(t.val);
}
}
41万+

被折叠的 条评论
为什么被折叠?



