我正在学习C ++的DSA(链接列表)。 我的链接列表例外。
错误信息:
它比应该的更长。
这是我的代码:
定义结构ListNode
Option Explicit
Sub Export_Template()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim NewBook As Workbook
Dim LRow As Long, LCol As Long
Dim FileName
FileName = Application.GetSaveAsFilename(InitialFileName:="Engineering TPD", FileFilter:="Excel Files (*.xlsx), *.xlsx")
If FileName <> False Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set NewBook = Workbooks.Add
LRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
LCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
ws.Range(ws.Cells(4, 1), ws.Cells(LRow, LCol)).Copy
NewBook.Sheets(1).Range("A1").PasteSpecial xlPasteValues
NewBook.SaveAs FileName:=FileName, FileFormat:=51
NewBook.Close False
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End If
End Sub
获取两个链接列表的交集
// Definition for singly-linked list.
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
构造样本并调用两个链表的交集
ListNode * Solution_three :: getIntersectionNode(ListNode *headA, ListNode *headB) {
ListNode * p_one = headA;
ListNode * p_two = headB;
if (p_one == NULL || p_two == NULL) {
return NULL;
}
while (p_one != NULL && p_two != NULL && p_one != p_two) {
p_one = p_one -> next;
p_two = p_two -> next;
if( p_one == p_two ){
return p_one;
}
if (p_one == NULL) {
p_one = headB;
}
if (p_two == NULL) {
p_two = headA;
}
}
return p_one;
}
通过一个断点,我看到链接列表更长了。
我不知道如何取出它。
答案 0 :(得分:0)
p_one != p_two
为何如此?
应该重载运算符!=
,以比较节点的值。