public List<String> findItinerary(String[][] tickets) {
        Map<String,PriorityQueue<String>> ticketMap=new HashMap<String, PriorityQueue<String>>();
        for(String[] ticket : tickets){
//            ticketMap.computeIfAbsent(ticket[0],k->new PriorityQueue<String>()).add(ticket[1]);
        }
        List<String> itinerary=new ArrayList<String>();
        //递归解法
        find(ticketMap,"JFK",itinerary);
        //迭代解法
//        Stack<String> stack=new Stack<String>();
//        stack.push("JFK");
//        while (!stack.isEmpty()){
//            while (ticketMap.containsKey(stack.peek()) && !ticketMap.get(stack.peek()).isEmpty()){
//                stack.push(ticketMap.get(stack.peek()).poll());
//            }
//            itinerary.add(0,stack.pop());
//        }
        return itinerary;
    }