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