Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1 / 2 3 5
All root-to-leaf paths are:
["1->2->5", "1->3"]
递归的方法:
public List<String> binaryTreePaths(TreeNode root) {
List<String> answer = new ArrayList<String>();
if (root != null)
searchBT(root, "", answer);
return answer;
}
private void searchBT(TreeNode root, String path, List<String> answer) {
if (root.left == null && root.right == null)
answer.add(path + root.val);//并没有将path的值改变掉
if (root.left != null)
searchBT(root.left, path + root.val + "->", answer);//同理,没有将path的值改变掉,因为后面可能要用到这个值
if (root.right != null)
searchBT(root.right, path + root.val + "->", answer);
}
版权声明:本文为博主原创文章,转载请注明出处:http://blog.csdn.net/lingzhm
时间: 2024-11-13 06:58:58