美文网首页
【1对】Univalued Binary Tree

【1对】Univalued Binary Tree

作者: 7ccc099f4608 | 来源:发表于2019-01-16 19:38 被阅读5次

https://leetcode.com/problems/univalued-binary-tree/

日期 是否一次通过 comment
2019-01-16 19:27 一次通过 本质是preOrder
image.png

(来源: https://leetcode.com/problems/univalued-binary-tree/

本质上就是个遍历啊

递归

class Solution {
    public boolean isUnivalTree(TreeNode root) {
        if(root == null) {
            return true;
        }
        
        int[] tempNum = new int[]{root.val};
        
        return helper(root, tempNum);
    }
    
    private boolean helper(TreeNode root, int[] tempNum) {
        if(root == null) {
            return true;
        }
        
        if(root.val != tempNum[0]) {
            return false;
        }
        
        return helper(root.left, tempNum) && helper(root.right, tempNum);
    }
}

非递归

class Solution {
    public boolean isUnivalTree(TreeNode root) {
        if(root == null) {
            return true;
        }
        
        int tempNum = root.val;
        
        Stack<TreeNode> nodeS = new Stack<>();
        nodeS.push(root);
        while(!nodeS.isEmpty()) {
            TreeNode tempNode = nodeS.pop();
            if(tempNode.val != tempNum) {
                return false;
            }
            if(tempNode.right != null) {
                nodeS.push(tempNode.right);
            }
            if(tempNode.left != null) {
                nodeS.push(tempNode.left);
            }
        }
        
        return true;
    }
}

相关文章

网友评论

      本文标题:【1对】Univalued Binary Tree

      本文链接:https://www.haomeiwen.com/subject/zihvdqtx.html