Invert Binary Tree

How to Invert Binary Tree or How to convert a binary tree into its mirror tree.

Given a binary tree, we have to write a code to invert it.

Inverting a Binary Tree

Inverting a binary tree means we have to interchange the left and right children of all non-leaf nodes. In simple words, Output is the mirror of the input tree.

Valid Parentheses String

Valid parentheses string with wildcard.

Given a string containing only three types of characters: ‘(‘, ‘)’ and ‘*’.  Write a function to check whether this string is valid.

We define the validity of a string by these rules:

1) Any left parenthesis ‘(‘ must have a corresponding right parenthesis ‘)’.

2) Any right parenthesis ‘)’ must have a corresponding left parenthesis ‘(‘.

3) Left parenthesis ‘(‘ must go before the corresponding right parenthesis ‘)’.

4) ‘*’ could be treated as a single right parenthesis ‘)’ or a single left parenthesis ‘(‘ or an empty string.

An empty string is also valid.

For Example –

Example 1:

Input: ” * ( ) ) “, Output: true

In the first example, To balance this string we need to treat star as opening bracket ( “(“).

Example 2:

Input: ” ( * ) “, Output: true

In this example, The start is treated as empty string.

Cousins In Binary Tree

How to check if two nodes are cousins in a Binary tree.

Given two values x and y, we have to write a code to check the nodes corresponding to values x and y are cousins or not. All the values in this binary tree are unique.

Two nodes of a binary tree are cousins if they have the same depth, but have different parents.

In a binary tree, the root node is at depth 0, and children of each depth k node are at depth k+1.