修改0112.路径总和.md的Java版本代码的字母小写问题

This commit is contained in:
‘windscape’
2025-01-23 11:47:27 +08:00
parent 5cd1eec4bf
commit da742feaa3

View File

@ -309,25 +309,25 @@ public:
0112.路径总和
```java
class solution {
public boolean haspathsum(treenode root, int targetsum) {
class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
if (root == null) {
return false;
}
targetsum -= root.val;
targetSum -= root.val;
// 叶子结点
if (root.left == null && root.right == null) {
return targetsum == 0;
return targetSum == 0;
}
if (root.left != null) {
boolean left = haspathsum(root.left, targetsum);
if (left) { // 已经找到
boolean left = hasPathSum(root.left, targetSum);
if (left) { // 已经找到,提前返回
return true;
}
}
if (root.right != null) {
boolean right = haspathsum(root.right, targetsum);
if (right) { // 已经找到
boolean right = hasPathSum(root.right, targetSum);
if (right) { // 已经找到,提前返回
return true;
}
}
@ -336,16 +336,16 @@ class solution {
}
// lc112 简洁方法
class solution {
public boolean haspathsum(treenode root, int targetsum) {
class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
if (root == null) return false; // 为空退出
// 叶子节点判断是否符合
if (root.left == null && root.right == null) return root.val == targetsum;
if (root.left == null && root.right == null) return root.val == targetSum;
// 求两侧分支的路径和
return haspathsum(root.left, targetsum - root.val) || haspathsum(root.right, targetsum - root.val);
return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);
}
}
```
@ -353,22 +353,22 @@ class solution {
迭代
```java
class solution {
public boolean haspathsum(treenode root, int targetsum) {
class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
if(root == null) return false;
stack<treenode> stack1 = new stack<>();
stack<integer> stack2 = new stack<>();
Stack<TreeNode> stack1 = new Stack<>();
Stack<Integer> stack2 = new Stack<>();
stack1.push(root);
stack2.push(root.val);
while(!stack1.isempty()) {
while(!stack1.isEmpty()) {
int size = stack1.size();
for(int i = 0; i < size; i++) {
treenode node = stack1.pop();
TreeNode node = stack1.pop();
int sum = stack2.pop();
// 如果该节点是叶子节点了同时该节点的路径数值等于sum那么就返回true
if(node.left == null && node.right == null && sum == targetsum) {
if(node.left == null && node.right == null && sum == targetSum) {
return true;
}
// 右节点,压进去一个节点的时候,将该节点的路径数值也记录下来
@ -387,7 +387,8 @@ class solution {
}
}
```
```Java 統一迭代法
```Java
class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
Stack<TreeNode> treeNodeStack = new Stack<>();
Stack<Integer> sumStack = new Stack<>();
@ -422,38 +423,39 @@ class solution {
}
return false;
}
}
```
0113.路径总和-ii
```java
class solution {
public List<List<Integer>> pathsum(TreeNode root, int targetsum) {
class Solution {
public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
List<List<Integer>> res = new ArrayList<>();
if (root == null) return res; // 非空判断
List<Integer> path = new LinkedList<>();
preorderdfs(root, targetsum, res, path);
preOrderDfs(root, targetSum, res, path);
return res;
}
public void preorderdfs(TreeNode root, int targetsum, List<List<Integer>> res, List<Integer> path) {
public void preOrderDfs(TreeNode root, int targetSum, List<List<Integer>> res, List<Integer> path) {
path.add(root.val);
// 遇到了叶子节点
if (root.left == null && root.right == null) {
// 找到了和为 targetsum 的路径
if (targetsum - root.val == 0) {
if (targetSum - root.val == 0) {
res.add(new ArrayList<>(path));
}
return; // 如果和不为 targetsum返回
}
if (root.left != null) {
preorderdfs(root.left, targetsum - root.val, res, path);
preOrderDfs(root.left, targetSum - root.val, res, path);
path.remove(path.size() - 1); // 回溯
}
if (root.right != null) {
preorderdfs(root.right, targetsum - root.val, res, path);
preOrderDfs(root.right, targetSum - root.val, res, path);
path.remove(path.size() - 1); // 回溯
}
}
@ -1626,3 +1628,4 @@ public class Solution {
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a>