input: Write a function to find the maximum value within a nested dictionary. The function should recursively traverse through all nested dictionaries and return the highest numerical value found. If the input dictionary is empty, the function should return None.
  
  def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val)
          else:
              max_val = max(value, max_val)
      return max_val
  
  sample_dict = {
      "key1": {
          "value1": 10,
          "value2": 20
      },
      "key2": {
          "value3": 40
      },
  }
  
  assert findMaxValue(sample_dict)==40
  assert findMaxValue({})==None
output: def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              max_val = max(findMaxValue(value), max_val)
          else:
              max_val = max(value, max_val)
      return max_val