给定一个二叉树,返回它的中序 遍历。
示例:
输入: [1,null,2,3]
1
\
2
/
3 输出: [1,3,2] 来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal
递归
class Solution {
List<Integer> list1 = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root == null) return list1;
return inorder(root);
}
public List<Integer> inorder(TreeNode root){
if(root.left != null) inorder(root.left);
list1.add(root.val);
if(root.right != null) inorder(root.right);
return list1;
}
}
迭代 linkedList
class Solution {
LinkedList<Integer> list1 = new LinkedList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root == null) return list1;
return inorder(root);
}
public List<Integer> inorder(TreeNode root){
LinkedList<TreeNode> l1 = new LinkedList<>();
TreeNode n1 = root;
//l1.add(root);
while(!l1.isEmpty() || n1 !=null){
while(n1 != null) {
l1.add(n1);
n1 = n1.left;
}
TreeNode node = l1.pollLast();
list1.add(node.val);
n1 = node.right;
}
return list1;
}
}