二叉树(1)
二叉树的前序遍历 采用递归的方式可以很快得到结果,中序遍历和后序遍历与该算法几乎一样,只是有几行代码的位置换一换。 前序遍历: 先保存根节点的值,然后再去遍历左子树,然后遍历右子树。因此,添加结点值的代码在遍历左子树和右子树的结点的上面。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public List < Integer > preorderTraversal ( TreeNode root ) { List < Integer > list = new ArrayList < > ( ) ; if ( root == null ) return list ; preorderFunction ( root , list ) ; return list ; } void preorderFunction ( TreeNode root , List < Integer > list ) { if ( root == null ) return ; list . add ( root .