update list

This commit is contained in:
ranwenjie
2021-08-02 13:44:42 +08:00
parent 46f1c0e993
commit 0a3e78402e
3 changed files with 48 additions and 14 deletions
+4 -14
View File
@@ -95,10 +95,9 @@ p->next=NULL。此时,原单链表可以看作两条单链表,一条从head
## 复杂链表的复制
题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,
还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:
题目:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。其结点的C++定义如下:
```
struct ComplexNode
struct ComplexNode
{
int m_nValue;
ComplexNode* m_pNext;
@@ -122,8 +121,7 @@ struct ListNode
};
```
分析:
第一个公共节点,也就是2个链表中的节点的m_pNext 指向的同一个节点。
分析:第一个公共节点,也就是2个链表中的节点的m_pNext 指向的同一个节点。
1. 先遍历2个链表,得到各自的长度,和差sub
2. 长链表先遍历sub个节点,然后2个节点一起遍历
@@ -149,6 +147,7 @@ struct ListNode{
## 在O(1)时间内删除链表结点
题目:给定链表的头指针和一个结点指针,在O(1)时间删除该结点。链表结点的定义如下:
```
@@ -185,15 +184,6 @@ struct node{
## 链表和数组的区别在哪里?
分析:主要在基本概念上的理解。
但是最好能考虑的全面一点,现在公司招人的竞争可能就在细节上产生,
谁比较仔细,谁获胜的机会就大。