965. Univalued Binary Tree

/**

965. Univalued Binary Tree
* https://leetcode.com/problems/univalued-binary-tree/description/

A binary tree is univalued if every node in the tree has the same value.  Return true if and only if the given tree is univalued.

*/

/**
* @param {TreeNode} root
* @return {boolean}
*/
var isUnivalTree = function(root) {
  let stack = [];

  let lastValue = -1;

  while (stack.length > 0 || root != null) {
    if (root != null) {
      stack.push(root);
      root = root.left;
    } else {
      root = stack.pop();
      if (lastValue != -1) {
        if (lastValue != root.val)
          return false;
      }
     lastValue = root.val;
     root = root.right;
    }
  }
  return true;

};

posted @ 2019-01-01 23:51  johnny_zhao  阅读(145)  评论(0编辑  收藏  举报