LeetCode 2
模拟十进制运算考察单链表基本操作。题无难点,个人基础需要提高。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *p=l1,*q=l2;
ListNode *r=(ListNode *)malloc(sizeof(ListNode));
ListNode *s=r;
int shi_val=0;
while(p&&q)
{
ListNode *t=(ListNode *)malloc(sizeof(ListNode));
t->val=(p->val+q->val+shi_val)%10;
shi_val=(p->val+q->val+shi_val)/10;
s->next=t;
s=t;
p=p->next;
q=q->next;
}
while(p)
{
ListNode *t=(ListNode *)malloc(sizeof(ListNode));
t->val=(p->val+shi_val)%10;
shi_val=(p->val+shi_val)/10;
s->next=t;
s=t;
p=p->next;
}
while(q)
{
ListNode *t=(ListNode *)malloc(sizeof(ListNode));
t->val=(q->val+shi_val)%10;
shi_val=(q->val+shi_val)/10;
s->next=t;
s=t;
q=q->next;
}
if(shi_val){
ListNode *t=(ListNode *)malloc(sizeof(ListNode));
t->val=shi_val;
s->next=t;
s=t;
}
s->next=NULL;
return r->next;
}
};
重新复习了一遍链表的操作
刷些POJ的初级题来练下手
POJ3086 找规律
POJ1207 还是注意输入时判断大小
POJ1003 水题
POJ3210 比较难理解题意的一道题。问的是在任何情况下,都能至多通过n次翻转使所有硬币达到同面状态的n是多少。