'''simple docstring'''





from __future__ import annotations





def       lowerCAmelCase_							(   snake_case_			:					float   ,       snake_case_			:					float   ,       snake_case_			:					float   ,       )       -> tuple:


     '''simple docstring'''




     if (electron_conc, hole_conc, intrinsic_conc).count(0     ) != 1:
          raise ValueError("You cannot supply more or less than 2 values"     )
     elif electron_conc < 0:
          raise ValueError("Electron concentration cannot be negative in a semiconductor"     )
     elif hole_conc < 0:
          raise ValueError("Hole concentration cannot be negative in a semiconductor"     )
     elif intrinsic_conc < 0:
          raise ValueError(
              "Intrinsic concentration cannot be negative in a semiconductor"     )
     elif electron_conc == 0:
          return (
              "electron_conc",
              intrinsic_conc**2 / hole_conc,
          )
     elif hole_conc == 0:
          return (
              "hole_conc",
              intrinsic_conc**2 / electron_conc,
          )
     elif intrinsic_conc == 0:
          return (
              "intrinsic_conc",
              (electron_conc * hole_conc) ** 0.5,
          )
     else:
          return (-1, -1)


if __name__ == "__main__":
    import doctest

    doctest.testmod()










'''simple docstring'''





from typing import Any

class   _a							:






     def __init__(					self   ,_SCREAMING_SNAKE_CASE       )				->     List[str]:
          _snake_case				= data
          _snake_case				= None







class   _a							:






     def __init__(					self       )				->     List[Any]:
          _snake_case				= None






     def 							_lowercase      (					self       )				->     str:
          _snake_case				= self.head
          while temp is not None:
               print(temp.data   ,end=" "       )
               _snake_case				= temp.next
          print()






     def 							_lowercase      (					self   ,_SCREAMING_SNAKE_CASE       )				->     Dict:
          _snake_case				= Node(_SCREAMING_SNAKE_CASE       )
          _snake_case				= self.head
          _snake_case				= new_node






     def 							_lowercase      (					self   ,_SCREAMING_SNAKE_CASE   ,_SCREAMING_SNAKE_CASE       )				->     Tuple:
          if node_data_a == node_data_a:
               return
          else:
               _snake_case				= self.head
               while node_a is not None and node_a.data != node_data_a:
                    _snake_case				= node_a.next

               _snake_case				= self.head
               while node_a is not None and node_a.data != node_data_a:
                    _snake_case				= node_a.next

               if node_a is None or node_a is None:
                    return

               _snake_case				,   _snake_case				= node_a.data, node_a.data


if __name__ == "__main__":
   UpperCamelCase_		:     str          =		LinkedList()
   for i in range(5, 0, -1):
      ll.push(i)

   ll.print_list()

   ll.swap_nodes(1, 4)
   print('''After swapping''')
   ll.print_list()


