leetcode 257. Binary Tree Paths


  1. Binary Tree Paths:题目链接

递归解法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
// 递归的宏观语义:返回以root为根节点的二叉树所有从根节点到叶节点的路径
// 时间复杂度O(N) 空间复杂度O(M):list的长度
public List<String> binaryTreePaths(TreeNode root) {
List<String> res = new LinkedList<>();
if (root == null) {
return res; // 如果树空 返回一个空的List<String> []
}
if (root.left == null && root.right ==null) { // 叶节点
res.add("" + root.val);
}

List<String> leftRes = binaryTreePaths(root.left); // 左子树为根节点的二叉树所有从根节点到叶节点的路径
for (String s : leftRes) {
res.add(root.val + "->" + s);
}

List<String> rightRes = binaryTreePaths(root.right); // 右子树为根节点的二叉树所有从根节点到叶节点的路径
for (String s : rightRes) {
res.add(root.val + "->" + s);
}
return res;
}
}

迭代解答

待补

文章目录
  1. 1. 递归解法
  2. 2. 迭代解答
|