给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。
示例: 输入: 输出: [“1->2->5”, “1->3”] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
【深度优先搜索】
public List
<String> binaryTreePaths(TreeNode root
) {
List
<String> ans
= new ArrayList<>();
if (root
== null
){
return ans
;
}
inorder(root
,new StringBuilder(),ans
);
System
.out
.println();
return ans
;
}
private void inorder(TreeNode root
, StringBuilder res
, List
<String> ans
){
if (root
.left
== null
&& root
.right
== null
){
ans
.add(res
.append(root
.val
).toString());
return;
}
res
.append(root
.val
).append("->");
if (root
.left
!= null
) {
inorder(root
.left
, new StringBuilder(res
), ans
);
}
if (root
.right
!= null
) {
inorder(root
.right
, new StringBuilder(res
), ans
);
}
}