目录
二叉树的所有路径
描述
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
示例 1
输入:root = [1,2,3,null,5] 输出:["1->2->5","1->3"]
示例 2
输入:root = [1] 输出:["1"]
提示
- 树中节点的数目在范围 [1, 100] 内
- -100 <= Node.val <= 100
方法:递归
我们还是可以用递归的方法来做,递归的中点就是叶子节点,然后传入参数记录路径以及存储结果列表。
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> res = new ArrayList<>();
reCur(root, "", res);
return res;
}
public void reCur(TreeNode root, String path, List<String> res) {
if (root != null) {
path += root.val;//将当前节点添加进路径
if (root.left == null && root.right == null) res.add(path);//如果当前节点是叶子节点
else {//如果当前节点不是叶子节点
StringBuffer temp=new StringBuffer(path);
temp.append("->");//添加符号
reCur(root.left, temp.toString(), res);//递归左子树
reCur(root.right, temp.toString(), res);//递归右子树
}
}
}
}