1 /** 2 * Definition for singly-linked list. 3 * public class ListNode { 4 * int val; 5 * ListNode next; 6 * ListNode(int x) { val = x; } 7 * } 8 */ 9 public class Solution { 10 public ListNode plusOne(ListNode head) { 11 if (helper(head) == 0) { 12 return head; 13 } 14 ListNode result = new ListNode(1); 15 result.next = head; 16 return result; 17 } 18 19 private int helper(ListNode head) { 20 if (head == null) { 21 return 1; 22 } 23 24 int current = helper(head.next); 25 int nextLevel = 0; 26 nextLevel = (head.val + current) / 10; 27 head.val = (head.val + current) % 10; 28 return nextLevel; 29 } 30 }