删除以x为值的节点的子树

题目

已知二叉树以二叉链表存储,编写算法完成:对于树中每个元素值为x的结点,删去以它为根的子树,并释放相应的空间。

想法

  • 删除以元素值×为根的子树,只要能删除其左、右子树,就可以释放值为×的根结点,因此宜采用后序遍历。[前/中/后序皆可]
  • **算法思想:**删除值为x的结点,意味着应将其父结点的左(右)子女指针置空,用层次遍历易于找到某结点的父结点。本题要求删除树中每个元素值为×的结点的子树,因此要遍历完整棵二叉树。【BFS】

编码

/*** 删除当前结点** @param root 根节点*/
public void removeChildNodes(TreeNode root) {if (root != null) {removeChildNodes(root.left);removeChildNodes(root.right);//这里我假设val=-1就是无效结点,也就是被删除了root.val = -1;}
}/*** 搜索结点值为x的元素** @param root 根元素* @param x    要比对的值*/
public void searchNodesAndDel(TreeNode root, int x) {if (root != null) {if (root.val == x) {removeChildNodes(root.left);//root.left = null;removeChildNodes(root.right);//root.right = null;}searchNodesAndDel(root.left, x);searchNodesAndDel(root.right, x);}
}

数据结构与算法之删除以x为值的节点的子树相关推荐

  1. 数据结构与算法--两个链表中第一个公共节点

    链表中第一个公共节点 公节点定义:同一个节点在两个链表中,并不是节点值相同 题目:输入两个节点,找出他们的第一个公共节点,节点定义如需 /*** 链表元素节点** @author liaojiamin ...

  2. 数据结构与算法-- 二叉树中和为某一值的路径

    二叉树中和为某一值的路径 题目:输入一颗二叉树和一个整数,打印出二叉树中节点值的和为给定值的所有路径.从树的根节点开始往下一只到叶子节点所经过的节点形成一条路径. 我们用二叉树节点的定义沿用之前文章中 ...

  3. 常考数据结构与算法:删除链表的倒数第n个节点

    题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1-& ...

  4. 数据结构与算法学习(第三天单链表节点数、倒数k个节点值、反转、尾到头打印)

    求单链表中有效节点的个数 //获取到但链表的节点的个数(如果是带头节点的链表,需求不统计头节点)public static int getLength(HeroNode head){if(head.n ...

  5. 常考数据结构与算法----给定一个二叉树和一个值 sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径,

    题目描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22, 返回 [ [5,4,11,2], [5,8,9] ] 示 ...

  6. DSA 经典数据结构与算法 学习心得和知识总结(四) | AVL树

    AVL树 从BST的角度看AVL AVL的定义及性质 AVL树的结构定义 AVL树的旋转算法 左左情况---右旋 右右情况---左旋 左右情况---左右旋 右左情况---右左旋 AVL树的遍历操作 A ...

  7. 数据结构与算法--死磕二叉树

    死磕二叉树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫,因此有此次总结,以下是所有树 ...

  8. 数据结构与算法--力扣109题将有序双向链表转换为二叉搜索树

    将有序数组转换为二叉搜索树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫,因此有此次总 ...

  9. 数据结构与算法--力扣108题将有序数组转换为二叉搜索树

    力扣108提将有序数组转换为二叉搜索树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫, ...

最新文章

  1. 腾讯云“抢救”微盟!开 766 次在线会议、调拨 100 多台服务器、闹钟只敢定 2 小时...
  2. 什么是O/RMapping?为什么要用O/R Mapping?
  3. Active Diretory 全攻略(三)--建立域(2)
  4. 信息系统项目管理师-常用技术标准考点笔记
  5. jaydebeapi可以连接_Python安装jpype调用java,安装jaydebeapi通过jdbc连接数据库
  6. spring的aop注解配置(了解)
  7. UrlEncode编码算法
  8. find 命令_Linux下查找文件:find 命令
  9. Unicode与UTF-8的区别
  10. 如何制作可以在 MaxCompute 上使用的 crcmod 1
  11. .NET下实现分布式缓存系统Memcached
  12. ASP.NET Core 3.0 实战:构建多版本 API 接口
  13. HDX|FDX-B格式面板式动物电子耳标阅读器|读卡器HX-L8160系列MODBUS RTU 协议与通信说明
  14. XSS Filter Evasion Cheat Sheet
  15. 微信公众平台被动回复用户消息开发全步骤
  16. docker服务假死解决方案
  17. 酷客多小程序重磅升级,这十几个模板足以打动你的心!
  18. 护理学跨考计算机专业,什么是跨专业考研?
  19. 求小于整数N的最大素数
  20. COMP 3023 国外作业代写、C++ - Assignment代写、代做留学生Software Development程序作业、代做C/C++作业...

热门文章

  1. .bat批处理(一):@echo off
  2. 打造具创新力产品 麒麟980与骁龙845表现如何?
  3. matlab kstest怎么解释结果,如何解释“scipy.stats.kstest”和“ks-2samp”来评估数据与分布的“匹配度”?...
  4. 把计算机视觉算法应用遥感,RANSAC算法及其在遥感图像处理中的应用
  5. 职称计算机隐藏桌面图标,全国职称计算机考试专用教材――中文WindowsXP操作系统...
  6. django框架channels实现私信功能
  7. 未来10年流放异彩的10大科技产品
  8. 手机删除的照片如何恢复?这3个恢复小技巧值得收藏
  9. 百度地图获取手机屏幕坐标
  10. Adobe Photoshop CC 键盘快捷键