input: Write a function to find the maximum value within a nested dictionary. The function should traverse through all the keys and values, including nested dictionaries, to determine the highest value. If the 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
  
  assert findMaxValue({})==None
  assert findMaxValue({"key1": 5, "key2": 8})==8
  assert findMaxValue({"key1": {"subkey1": 10, "subkey2": 25}, "key2": 15})==25
  assert findMaxValue({"key1": {"subkey1": 30, "subkey2": {"subsubkey1": 45}}, "key2": 20})==45
  assert findMaxValue({"key1": {"subkey1": 5}, "key2": {"subkey2": {"subsubkey1": 6}}, "key3": 7})==7
output: def findMaxValue(dict):
      max_val = None
      for key, value in dict.items():
          if isinstance(value, dict):
              nested_max = findMaxValue(value)
              if nested_max is not None:
                  if max_val is None or nested_max > max_val:
                      max_val = nested_max
          else:
              if max_val is None or value > max_val:
                  max_val = value
      return max_val