leetcode刷题937-3
感想:再明白题目意思后,我想对于学习过链表的程序员来说,不算太难
题目解析:删除链表中的某一个结点
做题逻辑:输入的参数即是要删除的链表中的点,我们可以从linknode的数据结构中可以知道linknode包括node的值和下一个node的值,则我们可以linknode声明创建nextnode,然后将nextnode的值赋值给node,把nextnode的next地址也传递给node,即用nextnode覆盖node,从而实现再删除node而对链表的连接关系不造成影响的目的。
C语言与Java的比较:
在这道题中我的发现是c语言中的数据结构在java是用类来表示的
考查方向:链表
c语言:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
struct ListNode* nextnode=node->next;
node->val=nextnode->val;
node->next=nextnode->next;
}
java:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
ListNode nextnode=node.next;
node.val=nextnode.val;
node.next=nextnode.next;
}
}