如果我们把二叉树视为一个图,父子节点之间的连线视为双向的,我们姑且定义为“举例”为两节点之间边的个数。写一个程序求一颗二叉树中相距最远的两个节点之间的距离(《编程之美》3.8)
解题思路
该题目的技巧在于 全局变量的 应用。
需要克服的惯性思维:更多的题目的计算结果会作为递归函数的返回变量。
这个函数的返回值其实是root节点的高度。
在计算高度的过程中,顺便完成全局变量的更新。
code
1 | int GetMaxDistance(TreeNode* root) { |
如果我们把二叉树视为一个图,父子节点之间的连线视为双向的,我们姑且定义为“举例”为两节点之间边的个数。写一个程序求一颗二叉树中相距最远的两个节点之间的距离(《编程之美》3.8)
该题目的技巧在于 全局变量的 应用。
需要克服的惯性思维:更多的题目的计算结果会作为递归函数的返回变量。
这个函数的返回值其实是root节点的高度。
在计算高度的过程中,顺便完成全局变量的更新。
1 | int GetMaxDistance(TreeNode* root) { |
WeChat Pay
Alipay