[LeetCode]--257. Binary Tree Paths

    xiaoxiao2026-10-03  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”] Credits: Special thanks to @jianchao.li.fighter for adding this problem and creating all test cases.

    这种第一时间想到的就是递归啦。考虑好结束条件,就是左右子树都为空即叶子节点为结束条件,依次递归,不过要考虑好字符串的处理问题。

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { List<String> result = new LinkedList<String>(); List<Integer> path = new LinkedList<Integer>(); public List<String> binaryTreePaths(TreeNode root) { if(root ==null) return result; getPaths(root); return result; } public void getPaths(TreeNode node){ if(node == null) return; path.add(node.val); if(node.left == null && node.right == null){ StringBuffer buffer = new StringBuffer(); for(int i=0;i<path.size();i++){ if(i!=0) buffer.append("->"); buffer.append(path.get(i)); } result.add(buffer.toString()); } getPaths(node.left); getPaths(node.right); path.remove(path.size()-1); } }
    最新回复(0)