Hi, here’s your problem today. This problem was recently asked by Microsoft:

A k-ary tree is a tree with k-children, and a tree is symmetrical if the data of the left side of the tree is the same as the right side of the tree.

Here’s an example of a symmetrical k-ary tree.
4
/

3 3
/ | \ / |

9 4 1 1 4 9
Given a k-ary tree, figure out if the tree is symmetrical.

Here is a starting point:

class Node():
def **init**(self, value, children=[]):
self.value = value
self.children = children

def is_symmetric(root):

# Fill this in.

tree = Node(4) tree.children = [Node(3), Node(3)] tree.children[0].children = [Node(9), Node(4), Node(1)] tree.children[1].children = [Node(1), Node(4), Node(9)] print is_symmetric(tree)