题解 | #二叉树中和为某一值的路径(一)#

二叉树中和为某一值的路径(一)

http://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c

import java.util.*;
import java.util.Stack;


/*
 * 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
        //单独看每个节点 到父节点的sum固定 因此遍历一次
        Stack<TreeNode>st = new Stack<TreeNode>();
        if(root!=null)
            st.push(root);
        while(!st.isEmpty()){
            TreeNode t = st.pop();
            if(t.val==sum && t.right==null && t.left==null){
                return true;
            }
            else{
                if(t.left!=null){
                    t.left.val += t.val;
                    st.push(t.left);
                }
                if(t.right!=null){
                    t.right.val += t.val;
                    st.push(t.right);
                }
            }
        }
        return false;
    }
}

穷举 所有点到根节点的sum都记录下来对比

全部评论

相关推荐

10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务