欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

二叉树中寻找所有的独生节点

程序员文章站 2023-12-01 16:29:34
文章目录1. 题目2. 解题1. 题目二叉树中,如果一个节点是其父节点的唯一子节点,则称这样的节点为 “独生节点” 。二叉树的根节点不会是独生节点,因为它没有父节点。给定一棵二叉树的根节点 root ,返回树中 所有的独生节点的值所构成的数组 。数组的顺序 不限 。示例 1:输入:root = [1,2,3,null,4]输出:[4]解释:浅蓝色的节点是唯一的独生节点。节点 1 是根节点,不是独生的。节点 2 和 3 有共同的父节点,所以它们都不是独生的。提示:tree 中节点...


文章目录


1. 题目

二叉树中,如果一个节点是其父节点的唯一子节点,则称这样的节点为 “独生节点” 。
二叉树的根节点不会是独生节点,因为它没有父节点。

给定一棵二叉树的根节点 root ,返回树中 所有的独生节点的值所构成的数组 。
数组的顺序 不限

示例 1:
二叉树中寻找所有的独生节点

输入:root = [1,2,3,null,4] 输出:[4] 解释:浅蓝色的节点是唯一的独生节点。
节点 1 是根节点,不是独生的。
节点 23 有共同的父节点,所以它们都不是独生的。

提示:
tree 中节点个数的取值范围是 [1, 1000]。
每个节点的值的取值范围是 [1, 10^6]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-all-the-lonely-nodes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 遍历即可
class Solution { vector<int> ans; public: vector<int> getLonelyNodes(TreeNode* root) { if(!root) return {}; if(!root->left && root->right) ans.push_back(root->right->val); if(root->left && !root->right) ans.push_back(root->left->val); getLonelyNodes(root->left); getLonelyNodes(root->right); return ans; } }; 

48 ms 43.5 MB

本文地址:https://blog.csdn.net/qq_21201267/article/details/107093216

相关标签: 二叉树