博客主页:@花无缺
欢迎 点赞 收藏⭐ 留言 加关注✅!
本文由 花无缺 原创收录于专栏 【力扣题解】
P257.二叉树的所有路径
给你一个二叉树的根节点 root
,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
示例 1:
输入:root = [1,2,3,null,5]
输出:["1->2->5","1->3"]
示例 2:
输入:root = [1]
输出:["1"]
提示:
[1, 100]
内-100 <= Node.val <= 100
递归法:
public List<String> binaryTreePaths(TreeNode root) {
List<String> res = new ArrayList<>();
dfs(root,"",res);
return res;
}
private static void dfs(TreeNode root, String path, List<String> list) {
// 节点为空, 递归终止
if (root == null) return;
// 当前节点是叶子节点, 说明找到了一条路径, 加入结果列表中
if (root.left == null && root.right == null) {
list.add(path + root.val);
}
// 当前节点不是叶子节点, 则继续遍历左子树和右子树寻找路径
dfs(root.left,path + root.val + "->",list);
dfs(root.right,path + root.val + "->",list);
}
这里我们使用递归的方法来获取二叉树的所有路径,在我们对树进行递归遍历时,如果当前节点是叶子节点,说明我们就找到了一条满足条件的路径,如果当前节点不是叶子节点,那么就继续递归遍历左右子树,直到遍历到叶子节点。
作者:花无缺(huawuque404.com)
欢迎
关注
我的博客:花无缺-每一个不曾起舞的日子都是对生命的辜负~
一起进步-刷题专栏:【力扣题解】
往期精彩好文:
【CSS选择器全解指南】
【HTML万字详解】
你们的点赞 收藏⭐ 留言 关注✅
是我持续创作,输出优质内容
的最大动力!
谢谢!