题解 | #二叉树根节点到叶子节点的所有路径和#

二叉树根节点到叶子节点的所有路径和

http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83

import java.util.*;

/*

  • public class TreeNode {
  • int val = 0;
  • TreeNode left = null;
  • TreeNode right = null;
  • } */

public class Solution { /** * * @param root TreeNode类 * @return int整型 / public int sumNumbers(TreeNode root) { //如果根节点是空,直接返回0即可 if (root == null) return 0; //两个栈,一个存储的是节点,一个存储的是节点对应的值 Stack nodeStack = new Stack<>(); Stack valueStack = new Stack<>(); //全局的,统计所有路径的和 int res = 0; nodeStack.add(root); valueStack.add(root.val); while (!nodeStack.isEmpty()) { //当前节点和当前节点的值同时出栈 TreeNode node = nodeStack.pop(); int value = valueStack.pop(); if (node.left == null && node.right == null) { //如果当前节点是叶子结点,说明找到了一条路径,把这条 //路径的值加入到全局变量res中 res += value; } else { //如果不是叶子节点就执行下面的操作 if (node.right != null) { //把子节点和子节点的值分别加入到栈中,这里子节点的值 //就是父节点的值10+当前节点的值 nodeStack.push(node.right); valueStack.push(value * 10 + node.right.val); } if (node.left != null) { nodeStack.push(node.left); valueStack.push(value * 10 + node.left.val); } } } return res;

}

}

我居南半坡 文章被收录于专栏

多刷题,积蓄力量,欢迎讨论

全部评论

相关推荐

04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务