class Solution {
public boolean hasPathSum(TreeNode root, int sum) {
if(root == null) return false;
Queue<TreeNode> queNode = new LinkedList<TreeNode>();
Queue<Integer> queVal = new LinkedList<Integer>();
//根节点加入队列
queNode.offer(root);
queVal.offer(root.val);
while(!queNode.isEmpty()){
//将now节点取出,最后加入now的左节点和右节点
//now节点就相当于queue中的第一个元素,待取出的元素
TreeNode now = queNode.poll();
int temp = queVal.poll();
if(now.left == null && now.right == null){
if(temp == sum){
return true;
}
continue;
}
if (now.left != null) {
//加入左子节点,并计算累加的值
queNode.offer(now.left);
queVal.offer(now.left.val + temp);
}
if (now.right != null) {
queNode.offer(now.right);
queVal.offer(now.right.val + temp);
}
}
return false;
}
}

当取出11时,会在队列中加入7和2,等到7位于头部时,将其取出,发现不满足条件,continue下一个节点
博客介绍了队列操作,取出元素11时,会在队列中加入7和2。当7位于队列头部被取出,因不满足条件,执行continue操作处理下一个节点。
580

被折叠的 条评论
为什么被折叠?



