算法

## 算法基础 ### 排序问题 ### 链表问题 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; } ``` ### 二叉树问题 ### 贪心问题 ### 动态规划 ### 暴利递归 ### 树的进阶