题目:
Given a binary tree, return the inorder traversal of its nodes‘ values.
For example:
Given binary tree{1,#,2,3},
1 2 / 3
return[1,3,2].
题目的意思是进行树的中序遍历。很明显在看到关于二叉树的相关题目之后,我们应该首先想到的是递归,如果递归不行就想办法使用队列或者栈。本题使用递归的方法:
1 import java.util.*; 2 public class Solution { 3 4 public void inorder(ArrayList<Integer> list,TreeNode root) 5 { 6 if(root == null)//递归结束条件 7 { 8 return; 9 } 10 inorder(list,root.left);//递归遍历左子树 11 list.add(root.val);//将根节点的值放入list中 12 inorder(list,root.right);//递归遍历右子树 13 } 14 public ArrayList<Integer> inorderTraversal(TreeNode root) { 15 ArrayList<Integer> list = new ArrayList<Integer>(); 16 if(root == null) 17 { 18 return list; 19 } 20 inorder(list,root); 21 return list; 22 } 23 }
这道题目相对比较简单,关于二叉树的遍历操作,后期我在数据结构与算法这一栏目会进行相关知识的填充。