python求一个二叉树的深度和对应左儿子右兄弟树的深度
时间: 2024-05-11 07:19:23 浏览: 24
二叉树的深度可以使用递归实现,代码如下:
```python
class Node:
def __init__(self, val=None, left=None, right=None):
self.val = val
self.left = left
self.right = right
def tree_depth(root):
if root is None:
return 0
left_depth = tree_depth(root.left)
right_depth = tree_depth(root.right)
return max(left_depth, right_depth) + 1
```
对于左儿子右兄弟树,也可以使用递归实现。左儿子节点作为下一层的根节点,右兄弟节点作为同层的下一个节点,代码如下:
```python
class TreeNode:
def __init__(self, val=None, left=None, right=None, next=None):
self.val = val
self.left = left
self.right = right
self.next = next
def lrs_tree_depth(root):
if root is None:
return 0
max_depth = 0
node = root.left
while node:
depth = lrs_tree_depth(node)
if depth > max_depth:
max_depth = depth
node = node.next
return max_depth + 1
```
其中,`next` 表示右兄弟节点。