查找二叉树的最深节点可以通过深度优先搜索(DFS)或广度优先搜索(BFS)来实现。以下是使用DFS的方法:
以下是示例代码:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def findDeepestNode(root):
maxDepth = 0
rightMostNode = None
def dfs(node, depth, maxDepth, rightMostNode):
if not node:
return
if depth > maxDepth:
maxDepth = depth
rightMostNode = node
dfs(node.left, depth + 1, maxDepth, rightMostNode)
dfs(node.right, depth + 1, maxDepth, rightMostNode)
dfs(root, 1, maxDepth, rightMostNode)
return rightMostNode
这个算法的时间复杂度是O(n),其中n是二叉树中的节点数。