human
I found an interesting problem on https://leetcode.com/problems/maximum-difference-between-node-and-ancestor/:
Given the root of a binary tree, find the maximum value V for which there exists different nodes A and B where V = |A.val - B.val| and A is an ancestor of B.
(A node A is an ancestor of B if either: any child of A is equal to B, or any child of A is an ancestor of B.)
 
Example 1:

Input: [8,3,10,1,6,null,14,null,null,4,7,13]
Output: 7
Explanation: 
We have various ancestor-node differences, some of which are given below :
|8 - 3| = 5
|3 - 7| = 4
|8 - 1| = 7
|10 - 13| = 3
Among all possible differences, the maximum value of 7 is obtained by |8 - 1| = 7.

 
Note:

The number of nodes in the tree is between 2 and 5000.
Each node will have value between 0 and 100000.

I tried it in Python, but could not do it. Can you solve it?
assistant
#Here is Python code to find the maximum value V for which there exists different nodes A and B where V = |A.

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def maxAncestorDiff(self, root: TreeNode) -> int:
        
        
        def traverse(root,anc,diff):
            
            if root:
                for an in anc:
                    if abs(root.val-an)>diff:
                        diff=abs(root.val-an)                
                
                diff=traverse(root.left,anc+[root.val],diff)
                diff=traverse(root.right,anc+[root.val],diff)
     
            return diff

        return traverse(root,[],0)