input: Write a function to find the maximum value within a nested dictionary. If the dictionary is empty, return None. This function should recursively traverse through the dictionary to find the maximum value across all levels of nesting.
  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
  
  assert findMaxValue({
      "key1": {
          "value1": 10,
          "value2": 20
      },
      "key2": {
          "value3": 40
      },
  })==40
  assert findMaxValue({
      "a": {
          "b": {
              "c": 15,
              "d": 25
          },
          "e": 35
      },
      "f": 45
  })==45
  assert findMaxValue({})==None
  assert findMaxValue({
      "key": 10
  })==10
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