当前位置:   article > 正文

链表:链表加1_循环链表的长度为数据元素数量加1

循环链表的长度为数据元素数量加1

    用链表表示一个常数,如123表示成1->2->3,要求把这个常数加1

    递归算法

  1. public static ListNode plusOne(ListNode head) {
  2. int result = addOne(head);
  3. if(result == 1){
  4. ListNode dummy = new ListNode(1);
  5. dummy.next = head;
  6. return dummy;
  7. }
  8. else return head;
  9. }
  10. public static int addOne(ListNode head){
  11. if(head.next == null){ //最后节点
  12. head.val += 1;
  13. if(head.val > 9){ //有进位
  14. head.val -= 10;
  15. return 1;
  16. }
  17. else return 0; //无进位
  18. }
  19. else{ //前面的节点,递归计算next之后的节点,再与当前节点相加
  20. int result = addOne(head.next);
  21. head.val += result;
  22. if(head.val > 9){
  23. head.val -= 10;
  24. return 1;
  25. }
  26. else return 0;
  27. }
  28. }

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号