Member-only story

Java solution to Leetcode 1609

Pierre-Marie Poitevin
2 min readOct 9, 2020

--

In this Leetcode problem, we need to check the property of a binary tree:

A binary tree is named Even-Odd if it meets the following conditions:

The root of the binary tree is at level index 0, its children are at level index 1, their children are at level index 2, etc.

For every even-indexed level, all nodes at the level have odd integer values in strictly increasing order (from left to right).

For every odd-indexed level, all nodes at the level have even integer values in strictly decreasing order (from left to right).

Given the root of a binary tree, return true if the binary tree is Even-Odd, otherwise return false.

Solution

The solution is quite obvious, we need to go through the tree level by level, and check the even or odd level property for each level.

The following implementation shows how I usually handle level by level, and left to right, algorithms in binary trees:

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean isEvenOddTree(TreeNode root) {
// Go level by level
// Initialize…

--

--

Pierre-Marie Poitevin
Pierre-Marie Poitevin

No responses yet