1. LeetCode94题目链接链接
https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
2.题目解析
首先需要了解一下什么是前序遍历,中序遍历以及后序遍历。https://blog.csdn.net/qq_33243189/article/details/80222629
简单来说中序就是本着左根右的顺序来排序。那么问题就简单了,根据节点是否为null来判断,然后先添加左边节点,然后根节点,最后添加右边节点就可以了。最简单的方法就是递归了。
public static List <Integer> inorderTraversal(TreeNode root) {
List<Integer> data = new ArrayList<>();
addNode(root, data);
return data;
}
public static void addNode(TreeNode root, List <Integer> data) {
if (root != null) {
//先判断左边在判断右边
if (root.left != null) {
addNode(root.left, data);
}
data.add(root.val);
if (root.right != null) {
addNode(root.right, data);
}
}
}
网友评论