关注
非递归的方式:
public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) {
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
if (root == null) {
return result;
}
Map<ArrayList<Integer>, ArrayList<TreeNode>> treeNodes = new HashMap<>();
ArrayList<Integer> key = new ArrayList<>();
key.add(root.val);
if (root.val == target && root.left == null && root.right == null) {
result.add(key);
return result;
}
ArrayList<TreeNode> value = new ArrayList<>();
if (root.left != null) {
value.add(root.left);
}
if (root.right != null) {
value.add(root.right);
}
treeNodes.put(key, value);
while (treeNodes.size() > 0) {
Map<ArrayList<Integer>, ArrayList<TreeNode>> temp = new HashMap<>();
for (ArrayList<Integer> arrayList : treeNodes.keySet()) {
ArrayList<TreeNode> tree = treeNodes.get(arrayList);
int sum = 0;
for (Integer integer : arrayList) {
sum += integer;
}
for (TreeNode treeNode : tree) {
ArrayList<Integer> arrayList1 = new ArrayList<>(arrayList);
arrayList1.add(treeNode.val);
if (sum + treeNode.val == target && treeNode.right == null && treeNode.left == null) {
result.add(0, arrayList1);
} else {
ArrayList<TreeNode> treeNodes1 = new ArrayList<>();
if (treeNode.left != null) {
treeNodes1.add(treeNode.left);
}
if (treeNode.right != null) {
treeNodes1.add(treeNode.right);
}
if (treeNodes1.size() > 0) {
temp.put(arrayList1, treeNodes1);
}
}
}
}
treeNodes = temp;
}
return result;
}
1
相关推荐
点赞 评论 收藏
分享
昨天 23:01
浙江工商大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 今天你投了哪些公司? #
15729次浏览 362人参与
# 哪一刻你对工作祛魅了? #
5361次浏览 51人参与
# 神州信息求职进展汇总 #
5014次浏览 77人参与
# 你感受到金三银四了嘛? #
6105次浏览 65人参与
# 如果给AI员工评绩效,我的答案是…… #
1763次浏览 53人参与
# 春招 / 实习投递,你最焦虑的一件事 #
13323次浏览 278人参与
# AI时代下,你的岗位要求有什么变化? #
2687次浏览 62人参与
# 27届求职交流 #
29518次浏览 615人参与
# HR问:你期望的薪资是多少?如何回答 #
81064次浏览 690人参与
# 刚工作的你,踩过哪些坑? #
1356次浏览 34人参与
# 26届求职交流 #
14930次浏览 390人参与
# 找工作,你都让AI帮你做什么? #
1456次浏览 60人参与
# 实习学不到东西正常吗? #
2325次浏览 29人参与
# 虽然0面试,但今天___,夸夸自己 #
1115次浏览 30人参与
# 担心入职之后被发现很菜怎么办 #
286464次浏览 1199人参与
# 今年找实习到底有多难? #
4564次浏览 39人参与
# 一起聊美团 #
344327次浏览 1888人参与
# 聊聊你的职场新体验 #
328964次浏览 1875人参与
# 春招前还要继续实习吗? #
55272次浏览 302人参与
# 好未来求职进展汇总 #
32792次浏览 180人参与
# 你觉得mentor喜欢什么样的实习生 #
52105次浏览 1013人参与
