1.题目
Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1
/ \
2 3
\
5
All root-to-leaf paths are:
[“1->2->5”, “1->3”]
2.解法
新建一个名为arrayListSingle的ArrayList,存放遍历过的路径,采用前序遍历的方式,每遍历一个子节点就将正在遍历的节点存入arrayListSingle,每当从子节点遍历返回时,例如上面题中给的例子里从5返回2时,就将arrayListSingle的最后一个元素,也就是刚遍历过的子节点删除,当发现正在遍历的节点没有子节点的时候,就说明走到了叶子节点位置,arrayListSingle里存的就正好是一条从根节点到该叶子的路径,这时就将arrayListSingle里的路径以String形式存到最终结果List里。具体代码如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Str