206.反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:

输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1]
以此类推,直到反转结束返回头结点
class Solution {
    public ListNode reverseList(ListNode head) {
        //当头结点为空或者头结点的下一节点为空时,返回头结点
        if(head == null || head.next == null){
            return head;
        }
        //创建一个返回节点
        ListNode cur = reverseList(head.next);
        head.next.next = head;
        //将head.next设置为空,防止往回遍历
        head.next = null;
        return cur;
    }
}258.各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。
示例 1:
输入: num = 38 输出: 2 解释: 各位相加的过程为: 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 由于2是一位数,所以返回 2。
class Solution {
    public int addDigits(int num) {
        if(num < 10)
            return num;
        //声明一个整型变量用来存储每次的加法结果
        int sum = 0;
        while(num != 0){
            sum = sum + num % 10;
            num /= 10;
        }
        return addDigits(sum);
    }
}数学上解法:
class Solution {
public int addDigits(int num) {
return (num-1)%9+1;
}
}























