public LinkedList<interval> FindOverlaps (Node node, interval interval, LinkedList<interval> list) {

    	//LinkedList<interval> list = new LinkedList<interval>();
    	
    	
    	
    	if (node.CurrentInterval != null)
        {
    		Date nodeStart = node.CurrentInterval.Start;
        	Date nodeEnd = node.CurrentInterval.End;
        	Date intervalStart = interval.Start;
        	Date intervalEnd = interval.End;
        	//System.out.println("Entrando a FindOverlaps.");
        	//System.out.println(nodeStart.toString() + " - " + nodeEnd.toString() + " --- " + intervalStart.toString() + " - " +intervalEnd.toString());

            if (node.Overlaps(interval))
            {
            	//CHEQUEAMOS SI YA EXISTE EN LA LISTA ANTES DE AGREGARLO
            	if(!list.contains(node.CurrentInterval))
            	{
            		list.add(node.CurrentInterval);
            	}
                //System.out.println("interval " + node.CurrentInterval.Name + " overlaps with interval " + interval.Name);
                if (CheckLeft(node))
                {
                    FindOverlaps(node.LeftNode, interval, list);
                }
                if (CheckRight(node))
                {
                    FindOverlaps(node.RightNode, interval, list);
                }
                if (CheckCenter(node))
                {
                    FindOverlaps(node.CenterNode, interval, list);
                }
            }
            else
            {
                if (CheckLeft(node))
                {
                    FindOverlaps(node.LeftNode, interval, list);
                }
                if (CheckRight(node))
                {
                    FindOverlaps(node.RightNode, interval, list);
                }
                if (CheckCenter(node))
                {
                    FindOverlaps(node.CenterNode, interval, list);
                }
            }

        }

        return list;
    }