题目描述:
给你一个 非空 链表的头节点 head ,表示一个不含前导零的非负数整数。
将链表 翻倍 后,返回头节点 head 。
示例:
解题思路:
先计算第一位是否超出位数,超出新建存储该数值,再逐个翻倍,超过9前一位加一,该数字对10求模。
相关代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode doubleIt(ListNode head) {
ListNode p=head,q=null;
if(p.val*2>9) {
q=new ListNode(0);
q.next=head;
head=q;
} else {
q=head;
}
while(p!=null) {
p.val*=2;
if(p.val/10>0) {
p.val%=10;
q.val+=1;
}
q=p;
p=p.next;
}
return head;
}
}