From c586895b93386684bd74b2c37f13056d72c7acba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=BF=94?= Date: Wed, 5 Dec 2018 22:07:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=86=E4=BC=A0=E5=85=A5=E7=9A=84?= =?UTF-8?q?=E6=8C=87=E9=92=88=E5=8A=A0=E4=B8=8A=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit void DestroyTree(BinaryTreeNode*& pRoot);函数中对指针进行了修改,并希望保存,所以要加上&。否则修改的结果不生效,成为野指针。 --- Utilities/BinaryTree.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Utilities/BinaryTree.h b/Utilities/BinaryTree.h index 68efc4d..fdd6af1 100644 --- a/Utilities/BinaryTree.h +++ b/Utilities/BinaryTree.h @@ -8,8 +8,8 @@ Distributed under the BSD license. *******************************************************************/ //================================================================== -// ָOfferԹپͱ⡷ -// ߣκ +// 《剑指Offer——名企面试官精讲典型编程题》代码 +// 作者:何海涛 //================================================================== #pragma once @@ -25,4 +25,4 @@ __declspec( dllexport ) BinaryTreeNode* CreateBinaryTreeNode(int value); __declspec( dllexport ) void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight); __declspec( dllexport ) void PrintTreeNode(const BinaryTreeNode* pNode); __declspec( dllexport ) void PrintTree(const BinaryTreeNode* pRoot); -__declspec( dllexport ) void DestroyTree(BinaryTreeNode* pRoot); +__declspec( dllexport ) void DestroyTree(BinaryTreeNode*& pRoot); From 716745ceb0ddab902c3b8692ff033dc4bab562ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=BF=94?= Date: Wed, 5 Dec 2018 22:13:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=8E=9F=E5=9E=8B?= =?UTF-8?q?=EF=BC=8C=E5=AF=B9=E4=BC=A0=E5=85=A5DestroyTree()=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E7=9A=84=E6=8C=87=E9=92=88=E5=8A=A0=E4=B8=8A=E5=BC=95?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit void DestroyTree(BinaryTreeNode*& pRoot)函数中会对指针进行修改。加上引用,修改才能生效,否则成为野指针,无法达到销毁树的目的。 --- Utilities/BinaryTree.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Utilities/BinaryTree.cpp b/Utilities/BinaryTree.cpp index cc8241e..c90b58c 100644 --- a/Utilities/BinaryTree.cpp +++ b/Utilities/BinaryTree.cpp @@ -8,8 +8,8 @@ Distributed under the BSD license. *******************************************************************/ //================================================================== -// ָOfferԹپͱ⡷ -// ߣκ +// 《剑指Offer——名企面试官精讲典型编程题》代码 +// 作者:何海涛 //================================================================== #include @@ -72,7 +72,7 @@ void PrintTree(const BinaryTreeNode* pRoot) } } -void DestroyTree(BinaryTreeNode* pRoot) +void DestroyTree(BinaryTreeNode*& pRoot) { if(pRoot != nullptr) {