1. 要有递归思想:考虑一个由根节点和左右儿子构成的子树,这是一个最简单的模型,其中左右儿子也是可以递归的子树,一切围绕树的操作都可以泛化为左子树、根节点、右子树三者之间的互动,然后用 dfs 遍历整棵树即可。

2. 边界条件不要考虑叶子节点,要考虑叶子节点的儿子(为空指针),叶子节点的判断条件太啰嗦(root->left==NULL && root->right==NULL)

3. 如果树中的节点没有父指针,不要费劲建立父指针,可以在递归回溯时,把左子树、右子树的根节点当作他们的父节点进行操作。

 

(详情见 LeetCode 979. 在二叉树中分配硬币

 

posted on 2023-07-20 16:47  wkxnk  阅读(9)  评论(0编辑  收藏  举报