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;
}
}