leetcode刷题937-3

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;
    }
}

猜你喜欢

转载自blog.csdn.net/dingkm666/article/details/84500845