二叉树前序遍历
import java.util.*; import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { private ArrayList> res = new ArrayList(); private LinkedList path = new LinkedList(); public ArrayList> FindPath(TreeNode root,int expectNumber) { if(root == null){ return res; } preOrder(root,expectNumber); return res; } public void preOrder(TreeNode root,int remainder){ if(root.left == null && root.right == null){ if(root.val == remainder){ path.add(root.val); res.add(new ArrayList(path)); path.removeLast(); } return; } path.add(root.val); if(root.left != null){ preOrder(root.left,remainder-root.val); } if(root.right != null){ preOrder(root.right,remainder-root.val); } path.removeLast(); } }