237. Delete Node in a Linked List
来源:互联网 发布:双十一购物数据 编辑:程序博客网 时间:2024/06/05 17:26
博主只是个编程渣渣,还在学习当中,文章仅供参考,可能有很多错误,欢迎指正
Delete Node in a Linked List
原题链接:(https://leetcode.com/problems/delete-node-in-a-linked-list/#/description)
题目:Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */
一开始见到这个题目,我的想法是遍历链表,找出node节点的上一个节点preNode,然后让preNode节点的next指针指向node节点的下一个节点,再删去node。
代码如下
class Solution {public: void deleteNode(ListNode* node) { ListNode *preNode;//preNode为删除节点的前一点 while(preNode->next!=NULL && preNode->next==node) preNode = preNode->next; if(preNode->next==NULL)//链表里没有要删去的这一点 return; else{ preNode->next = node->next; delete node; node = NULL; }
但是这个链表类并没有定义头节点,所以没有在申明preNode节点时使其为头节点。也就没有办法遍历整个链表,所以要换一个思路。
代码如下:
class Solution {public: void deleteNode(ListNode* node) { ListNode *next=node->next; *node = *next; delete next; }};
*node =*next的意思是将next指向的内容都赋给node指向的。是将地址指向的内容赋给地址指向的内容。
对比一下
preNode = node->next是使preNode的指针 指向node的next指针指向的内容。是将地址赋给地址。
阅读全文
0 0
- 237.Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a Linked List
- 237. Delete Node in a (Linked List)
- java poi 导入Excel
- Java获取当前类名、方法名
- tensorflow卷积网络测试
- Sublime Text使用笔记
- cookie详解
- 237. Delete Node in a Linked List
- Windows并发&异步编程(3)临界区Critical Section
- spring自动化装配bean
- 数据结构与算法(一)
- POJ3469 Dual Core CPU
- Coursera Algorithms week1 练习测验3:Successor with delete
- 序列化
- Dialog的不完全事件分发机制
- 如何实现 两个视图不同速率的平移