给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
样例描述 思路- 在递归中保存每条路径,需要每次都单独新建一个StringBuffer。先将值拼接进去,然后只要是非叶子结点,就拼接“->”。
class Solution { Listres = new ArrayList<>(); public List binaryTreePaths(TreeNode root) { dfs(root, ""); return res; } public void dfs(TreeNode root, String path) { if (root == null) { return; } StringBuffer sb = new StringBuffer(path); //先拼接值 sb.append(root.val); //如果到了叶子结点,加入到结果集 if (root.left == null && root.right == null) { res.add(sb.toString()); } //没到叶子结点,拼接-> else { sb.append("->"); //递归进行 dfs(root.left, sb.toString()); dfs(root.right, sb.toString()); } } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)