非叶子结点的度为1的二叉树
时间: 2024-05-11 10:18:19 浏览: 10
一个非叶子结点的度为1的二叉树是一棵只有左子树或右子树非空的二叉树,也就是说,这棵二叉树只有一个子节点。可以用以下方式表示:
```
A
\
B
\
C
\
D
```
在这个例子中,A 是根节点,它只有一个子节点 B,而 B 又只有一个子节点 C,以此类推,最终叶子节点是 D。
相关问题
所有非叶子结点的度为1的二叉树
这样的二叉树被称为斜树或单斜树。它的特点是所有非叶子节点都只有一个子节点。由于它只有一条单侧路径,因此它的深度等于节点数减1。举个例子,下面是一个包含5个节点的斜树:
```
1
\
2
\
3
\
4
\
5
```
求二叉树的非叶子结点个数
以下是求二叉树非叶子结点个数的Python代码:
```python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
def countNonLeafNode(root):
if not root or (not root.left and not root.right):
return 0
return 1 + countNonLeafNode(root.left) + countNonLeafNode(root.right)
```
解释:
首先定义了一个`TreeNode`类,表示二叉树的结点。每个结点包含一个值`val`和两个指向左右子结点的指针`left`和`right`。
然后定义了一个`countNonLeafNode`函数,用于计算二叉树的非叶子结点个数。如果当前结点为空或者是叶子结点(即左右子结点都为空),则返回0。否则,递归计算左右子树的非叶子结点个数,并将其相加,再加上当前结点本身,即可得到整棵树的非叶子结点个数。
注意:这里的非叶子结点指的是既有左子结点又有右子结点的结点,而不是只有一个子结点的结点。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)