237
一开始懵掉了,后面发现,只需要将这一个结点当作下一个结点就好了,这样就忽略了一个
void deleteNode(struct ListNode* node) {
node -> val = node -> next -> val;
node -> next = node -> next -> next;
}
剑指 offer || 024
创建一个头结点,将链表按照头插法重新插入即可。
struct ListNode* reverseList(struct ListNode* head){
struct ListNode *H,*r;
H = (struct ListNode*)malloc(sizeof(struct ListNode));
H -> next = NULL;
while (head != NULL)
{
r = head;
head = head -> next;
r -> next = H -> next;
H -> next = r;
}
return H -> next;
}
1290
很普通的二进制计算,但我想用递归处理,不过总是多乘二倍
int getDecimalValue(struct ListNode* head){
int sum = 0;
while (head != NULL)
{
sum = sum * 2 + head -> val;
head = head -> next;
}
return sum;
}