Decision trees are a type of machine learning algorithm used for classification and regression tasks. They are graphical representations of possible solutions to a decision based on certain conditions. Each internal node represents a "test" on an attribute, each branch represents the outcome of the test, and each leaf node represents a class label or a decision taken after computing all attributes.