如何制作不定期更新的【leetcode】刷题笔记?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2031个文字,预计阅读时间需要9分钟。
题目:删除链表中的一个节点
要求:给定一个链表中的一个节点的前一个节点,删除该节点。
注意:题目并未给出链表的引用,因此我们无法遍历链表来找到前一个节点。有一种思路确实可行,并且非常有效。
237.Delete Node in a Linked List
题目要求只给定链表中一个节点的前提下,删除该节点。注意这里题目并没有给出对链表的引用,因而我们无法遍历链表得到前驱。有一个思路确实很好,它并不是删除链表的节点,而是把该节点的内容改为下一个节点的内容,把该节点的指针给为下一个节点的指针,相当于复制了下一个节点的内容然后删除下一个节点。
思考:这个思路在只有单链表的前提下确实无懈可击,不过不但这个链表被运用到实际应用中会有问题产生,因为应用中的实例可能会持有链表节点的引用,这种删除方式会导致引用发生错误,比如原本持有3的引用,正常来看,一旦删除3,就应该持有null才对,但是上述做法却让其持有了4的引用,反而原本持有4的引用的对象持有了null的引用,这是一个弊端。
234.Palindrome Linked List
Palindrome意思是回文,这个题目给出了判定回文的思路,即同时从前和从后遍历,比较两端的元素,只要有一次不同,就返回false,循环结束返回true。
本文共计2031个文字,预计阅读时间需要9分钟。
题目:删除链表中的一个节点
要求:给定一个链表中的一个节点的前一个节点,删除该节点。
注意:题目并未给出链表的引用,因此我们无法遍历链表来找到前一个节点。有一种思路确实可行,并且非常有效。
237.Delete Node in a Linked List
题目要求只给定链表中一个节点的前提下,删除该节点。注意这里题目并没有给出对链表的引用,因而我们无法遍历链表得到前驱。有一个思路确实很好,它并不是删除链表的节点,而是把该节点的内容改为下一个节点的内容,把该节点的指针给为下一个节点的指针,相当于复制了下一个节点的内容然后删除下一个节点。
思考:这个思路在只有单链表的前提下确实无懈可击,不过不但这个链表被运用到实际应用中会有问题产生,因为应用中的实例可能会持有链表节点的引用,这种删除方式会导致引用发生错误,比如原本持有3的引用,正常来看,一旦删除3,就应该持有null才对,但是上述做法却让其持有了4的引用,反而原本持有4的引用的对象持有了null的引用,这是一个弊端。
234.Palindrome Linked List
Palindrome意思是回文,这个题目给出了判定回文的思路,即同时从前和从后遍历,比较两端的元素,只要有一次不同,就返回false,循环结束返回true。

