Binary Tree Paths
Given the root of a binary tree, return all root-to-leaf paths in any order.
A leaf is a node with no children.
Example 1:
Input: root = [1,2,3,null,5]
Output: ["1->2->5","1->3"]
Example 2:
Input: root = [1]
Output: ["1"]
Constraints:
The number of nodes in the tree is in the range [1, 100].
-100 <= Node.val <= 100
思路一:递归,从叶子节点往上回溯。看了一下题解,也可以从根节点往下构造,两种思路,从根节点往下构造代码会简洁很多
public List<String> binaryTreePaths(TreeNode root) {
ArrayList<String> result = new ArrayList<>();
if (root == null) {
return result;
}
List<String> left = binaryTreePaths(root.left);
List<String> right = binaryTreePaths(root.right);
if (left.isEmpty() && right.isEmpty()) {
result.add(root.val + "");
}
if (!left.isEmpty()) {
for (String s : left) {
result.add(root.val + "->" + s);
}
}
if (!right.isEmpty()) {
for (String s : right) {
result.add(root.val + "->" + s);
}
}
return result;
}
标签:right,val,257,isEmpty,result,easy,root,leetcode,left
From: https://www.cnblogs.com/iyiluo/p/16848964.html