Home Leetcode-Symmetric Tree(Kotlin)
Post
Cancel

Leetcode-Symmetric Tree(Kotlin)

Overview

alt-text-here

What You’ll Learn

Symmetric Tree is an “Easy” tagged Leetcode problem. The problem states “Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).”

First I will show you the problem statement, examples and constraints given.

alt-text-here

Also, check out this video tutorial on implementing these solutions:

We can have a queue to check if the root’s left and right children are identical.  These are the steps we can take to arrive at our solution:

  • Create a queue and add the root twice to the queue.

  • As long as there is a TreeNodes in the queue, we will take two TreeNodes.

  • If they are both null, we have arrived at null leaf nodes, so continue.

  • Next, if either node is null, we will return false since we already are checking if both are null beforehand. This is similar to the given Example 2

  • Lastly, we also need to check if the values are the same. Of course, if the values are not the same, they are not symmetric.

  • We will add each of the two current nodes opposite nodes to the queue.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
    fun isSymmetric(root: TreeNode?): Boolean {

        val queue = LinkedList<TreeNode?>()
        queue.offer(root)
        queue.offer(root)

        while( queue.isNotEmpty() ){

            val one = queue.poll()
            val two = queue.poll()

            if(one == null && two == null) continue
            if(one == null || two == null) return false
            if(one?.`val` != two?.`val`) return false

            queue.offer(one.left)
            queue.offer(two.right)
            queue.offer(two.left)
            queue.offer(one.right)
        }

        return true
    }
}

Congratulations

Congratulations, we have went through a couple of ways to solve Leetcode - Symmetric Tree (Kotlin)!

Also, check out the video tutorial on implementing these solutions:

This post is licensed under CC BY 4.0 by the author.
Contents