一,问题描述
1, 输入一个完全二叉树,求出最后一个节点值。
2, 例如: 输入:
输出: 5
3, 算法思想:首先遍历完全二叉树的左分支,求出完全二叉树的高度depth, 然后对于每个子树的根节点,先从根节点的右孩子开始,然后从此节点遍历该节点的左孩子,等遍历完成后,进行判断此时临时高度等于二叉树的高度,且节点无右孩子时候,则输出该节点,否则右侧还有节点,则遍历右子树,若临时高度小于二叉树的高度,则遍历根节点的左孩子。
二, 程序
1, python实现
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution(object):
def printlastnode(self, root):
if not root:
return None
depth = 0
tmp =