function DelTreeNode( Node: TTreeNode ): Boolean;
var Parent: TTreeNode;
childNode: TTreeNode;
begin
Parent := nil;
childNode := nil;
if Assigned(Node) then
begin
if Assigned(Node.Parent) then
begin
//保存父结点
Parent := Node.Parent;
end;
if( Node.HasChildren ) then
begin
childNode := Node.GetLastChild;
while( Assigned( childNode ) ) do
begin
if ( childNode.HasChildren ) then
DelTreeNode(childNode)
else childNode.Delete;
childNode := Node.GetLastChild;
end;
if( not ( Node.HasChildren ) )then
Node.Delete;
end else
begin
Node.Delete;
end;
end;
end;
var Parent: TTreeNode;
childNode: TTreeNode;
begin
Parent := nil;
childNode := nil;
if Assigned(Node) then
begin
if Assigned(Node.Parent) then
begin
//保存父结点
Parent := Node.Parent;
end;
if( Node.HasChildren ) then
begin
childNode := Node.GetLastChild;
while( Assigned( childNode ) ) do
begin
if ( childNode.HasChildren ) then
DelTreeNode(childNode)
else childNode.Delete;
childNode := Node.GetLastChild;
end;
if( not ( Node.HasChildren ) )then
Node.Delete;
end else
begin
Node.Delete;
end;
end;
end;
本文介绍了一个使用递归方法删除树形结构中节点的函数实现。该函数首先检查目标节点是否为空,然后保存其父节点信息。接着遍历并递归删除所有子节点,最后删除当前节点。
1305

被折叠的 条评论
为什么被折叠?



