算法
## 算法基础
### 排序问题
### 链表问题
1. 链表反转题目
1. 递归方法解答
1.
```
public static ListNode reverseList(ListNode curr) {
if (curr == null || curr.next == null) {
return curr;
}
ListNode preReverseNodeList;
//当前列表的下一个值
ListNode next = curr.next;
preReverseNodeList = reverseList(next);
next.next = curr;
curr.next = null;
return preReverseNodeList;
}
```
2. 迭代方法解答(改变指针方法)
```
public static ListNode aaa(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
//下一个元素是,当前链表的下一个
ListNode next = curr.next;
//当前元素的next赋值成前一个
curr.next = prev;
//前一个赋值成当前元素
prev = curr;
//当前元素下移
curr = next;
}
return prev;
}
```
### 二叉树问题
### 贪心问题
### 动态规划
### 暴利递归
### 树的进阶