To the Top
File:  root - text - article - 2019 - 12 - arithmetic-binary-tree.txt
Tags: 每日算法题, 算法, 数据结构, 面试题, Daily Interview Problem, Data Structures and Algorithms, Computer Programming, Python, | English | Home Page | Category: Computing | 363 Views, 17154 Search Bots | 142 Words

Subscribe to Feed Burner | Browse | Archive
Hi, here's your problem today. This problem was recently asked by Apple:

You are given a binary tree representation of an arithmetic expression. In this tree, each leaf is an integer value,, and a non-leaf node is one of the four operations: '+', '-', '*', or '/'.

Write a function that takes this tree and evaluates the expression.

Example:


*
/ \
+ +
/ \ / \
3 2 4 5


This is a representation of the expression (3 + 2) * (4 + 5), and should return 45.

Here's a starting point:


class Node:
def __init__(self, val, left=None, right=None):
self.val = val
self.left = left
self.right = right

PLUS = "+"
MINUS = "-"
TIMES = "*"
DIVIDE = "/"

def evaluate(root):
# Fill this in.

tree = Node(TIMES)
tree.left = Node(PLUS)
tree.left.left = Node(3)
tree.left.right = Node(2)
tree.right = Node(PLUS)
tree.right.left = Node(4)
tree.right.right = Node(5)
print evaluate(tree)
# 45
Tags: 每日算法题, 算法, 数据结构, 面试题, Daily Interview Problem, Data Structures and Algorithms, Computer Programming, Python, | English | Home Page | Cateogry: Computing | 363 Views, 17154 Search Bots | 142 Words Subscribe to Feed Burner

Related Articles

  1. Progess made
  2. Number of Ways to Climb Stairs
  3. Skip the readings, focus on problems. And use all the hints!
  4. Invert a Binary Tree
  5. Daily Interview Problem: Merge List Of Number Into Ranges
  6. Find Missing Numbers in an Array
  7. Algorithm Interview: Convert Roman Numerals to Decimal
  8. A trick for getting good at coding interviews FASTER
  9. [Daily Problem] Move Zeros
  10. 56 Bytes

Comments (0)

    Be the first one to comment this page !


Page Edited: May 11 2024 14:36:49 | RSS Subscription
How to Cook a Perfect Steak? | <meta name="robots" content="noindex, follow" />