1.前序遍历
前序遍历首先访问根节点,然后遍历左子树,最后遍历右子树。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> dataList = new ArrayList<>();
public List<Integer> preorderTraversal(TreeNode root) {
if(root!=null){
dataList.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
}
return dataList;
}
}
2.中序遍历
中序遍历是先遍历左子树,然后访问根节点,然后遍历右子树
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> dataList = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root!=null){
inorderTraversal(root.left);
dataList.add(root.val);
inorderTraversal(root.right);
}
return dataList;
}
}
3.后序遍历
后序遍历是先遍历左子树,然后遍历右子树,最后访问树的根节点。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> dataList = new ArrayList<>();
public List<Integer> postorderTraversal(TreeNode root) {
if(root!=null){
postorderTraversal(root.left);
postorderTraversal(root.right);
dataList.add(root.val);
}
return dataList;
}
}
赞赏一下