题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
https://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @param sum int整型
* @return bool布尔型
*/
public boolean hasPathSum (TreeNode root, int sum) {
// write code here
//下面的代码是自己写的用减法实现路径
if(root == null){
return false;
}
Stack<TreeNode> stack = new Stack<>();
Stack<Integer> sums = new Stack<>();
stack.push(root);
sums.push(sum);
while(!stack.isEmpty()){
TreeNode cur = stack.pop();
int cursum = sums.pop();
if(cur.left == null && cur.right == null){
if(cur.val == cursum){
return true;
}
}
if(cur.right != null){
sums.push(cursum - cur.val);
stack.push(cur.right);
}
if(cur.left != null){
sums.push(cursum - cur.val);
stack.push(cur.left);
}
}
return false;
}
}
上海得物信息集团有限公司公司福利 1166人发布