赞
踩
用链表表示一个常数,如123表示成1->2->3,要求把这个常数加1
递归算法:
- public static ListNode plusOne(ListNode head) {
- int result = addOne(head);
- if(result == 1){
- ListNode dummy = new ListNode(1);
- dummy.next = head;
- return dummy;
- }
- else return head;
-
- }
- public static int addOne(ListNode head){
- if(head.next == null){ //最后节点
- head.val += 1;
- if(head.val > 9){ //有进位
- head.val -= 10;
- return 1;
- }
- else return 0; //无进位
- }
- else{ //前面的节点,递归计算next之后的节点,再与当前节点相加
- int result = addOne(head.next);
- head.val += result;
- if(head.val > 9){
- head.val -= 10;
- return 1;
- }
- else return 0;
- }
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。