递归解法

it2024-04-21  7

我们来思考这样一个问题,如果知道了左子树和右子树的所有路径,我们在用根节点和他们连在一起,是不是就是从根节点到所有叶子节点的所有路径,所以这里最容易想到的就是递归

 

最后再来看下代码

public List<String> binaryTreePaths(TreeNode root) { List<String> res = new ArrayList<>(); if (root == null) return res; //到达叶子节点,把路径加入到集合中 if (root.left == null && root.right == null) { res.add(root.val + ""); return res; } //遍历左子节点的所有路径 for (String path : binaryTreePaths(root.left)) { res.add(root.val + "->" + path); } //遍历右子节点的所有路径 for (String path : binaryTreePaths(root.right)) { res.add(root.val + "->" + path); } return res; }
最新回复(0)