Python Easiest Solution 
Help From:Code
# Help From: 
https://youtu.be/DXinKbQQDVE?si=Jk6FSGObSbAmautH

# Code
```python3 []
class Solution:
    def minMaxWeight(self, n: int, edges: List[List[int]], threshold: int) -> int:
        def isAccepted(weight):

            newArr=[[] for i in range(n)]
            for i in edges:
                src,dest,wt=i[0],i[1],i[2]
                # print("yo",src,dest,wt)
                if wt<=weight:
                    newArr[dest].append([wt,src])

            # print("newArr",newArr,weight)
            queue=deque()
            queue.append(0)
            visited=[0 for i in range(n)]
            count=0

            while queue:
                # print(queue)
                node=queue.popleft()
                if visited[node]:
                    continue
                visited[node]=1
                count+=1

                if newArr[node]:
                    for (w,neigh) in newArr[node]:
                        if not visited[neigh]:
                            queue.append(neigh)
            # print("count",count)
            return count==n
                    

        mini=math.inf
        maxi=-math.inf
        for i in range(len(edges)):
            mini=min(mini,edges[i][2])
            maxi=max(maxi,edges[i][2])

        arr=[]
        for i in edges:
            arr.append(i[2])
        arr.sort()
        # print("arr",arr)
        low=0
        high=len(arr)-1
        ans=-1
        # print("hey",mini,maxi)

        while (low<=high):
            mid=(low+high)//2
            if isAccepted(arr[mid]):
                ans=arr[mid]
                high=mid-1
            else:
                low=mid+1
    
        return ans

```
['Binary Search', 'Breadth-First Search', 'Graph', 'Shortest Path', 'Python3']