leetcode257. 二叉树的所有路径

leetcode257. 二叉树的所有路径

三月 14, 2020

leetcode257. 二叉树的所有路径


给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。

示例:
输入:

  1
 /   \
2     3
  \
    5

输出: [“1->2->5”, “1->3”]

解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3

前序遍历递归解决,注意每次回溯的时候要删掉加上的n位字母。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Solution {
public LinkedList<String>list=new LinkedList<>();
public List<String> binaryTreePaths(TreeNode root) {
if(root==null)return list;
if(root.left==null&&root.right==null){
list.add(String.valueOf(root.val));
return list;
}
StringBuffer s=new StringBuffer();
s.append(root.val);
traverse(root.left,s);
traverse(root.right,s);
return list;
}
public void traverse(TreeNode root,StringBuffer s){
if(root==null)return;
String rv=String.valueOf(root.val);
s.append("->");
s.append(rv);
if(root.left==null&&root.right==null){
list.add(new String(s));
}
traverse(root.left,s);
traverse(root.right,s);
s.delete(s.length()-rv.length()-2,s.length());
}
}

leetcode 42/100