comefrom: <doocs>1026.Maximum Difference Between Node and Ancestor_1.py
code: def dfs(root, mx, mi):
      if root is None:
          return
      nonlocal ans
      ans = max(ans, abs(root.val - mx), abs(root.val - mi))
      mx = max(mx, root.val)
      mi = min(mi, root.val)
      dfs(root.left, mx, mi)
      dfs(root.right, mx, mi)
masked: def sample_funcname ( var_1 , var_2 , var_3 ) :
      if var_1 is None :
          return
      nonlocal var_5
      var_5 = max ( var_5 , abs ( var_1.val - var_2 ) , abs ( var_1.val - var_3 ) )
      var_2 = max ( var_2 , var_1.val )
      var_3 = min ( var_3 , var_1.val )
      var_0 ( var_1.left , var_2 , var_3 )
      var_0 ( var_1.right , var_2 , var_3 )
  