当前位置:   article > 正文

LeetCode_Java_递归系列(题目+思路+代码)

LeetCode_Java_递归系列(题目+思路+代码)

206.反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

以此类推,直到反转结束返回头结点

  1. class Solution {
  2. public ListNode reverseList(ListNode head) {
  3. //当头结点为空或者头结点的下一节点为空时,返回头结点
  4. if(head == null || head.next == null){
  5. return head;
  6. }
  7. //创建一个返回节点
  8. ListNode cur = reverseList(head.next);
  9. head.next.next = head;
  10. //将head.next设置为空,防止往回遍历
  11. head.next = null;
  12. return cur;
  13. }
  14. }

258.各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。

示例 1:

输入: num = 38
输出: 2 
解释: 各位相加的过程为38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
由于2是一位数,所以返回 2。

  1. class Solution {
  2. public int addDigits(int num) {
  3. if(num < 10)
  4. return num;
  5. //声明一个整型变量用来存储每次的加法结果
  6. int sum = 0;
  7. while(num != 0){
  8. sum = sum + num % 10;
  9. num /= 10;
  10. }
  11. return addDigits(sum);
  12. }
  13. }

 数学上解法:

class Solution {

    public int addDigits(int num) {

        return (num-1)%9+1;

    }

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/321261
推荐阅读
相关标签
  

闽ICP备14008679号