Re: [闲聊] 每日LeetCode

楼主: Rushia (みけねこ的鼻屎)   2023-07-23 13:02:07
https://leetcode.com/problems/all-possible-full-binary-trees/description/
894. All Possible Full Binary Trees
给你一个数字 n ,找出所有合法的Full Binary Trees,他被定义为所有子节点个数
都是 0 或 2。
Example 1:
https://s3-lc-upload.s3.amazonaws.com/uploads/2018/08/22/fivetrees.png
Input: n = 7
Output:
[[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,null,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,null,null,null,null,0,0],[0,0,0,0,0,null,null,0,0]]
Example 2:
Input: n = 3
Output: [[0,0,0]]
思路:
1.因为要构建所有树的可能,所以只能用dfs去递回所有结果,所以关键在递回结束条件。
2.一个 full BT 的子节点数量只能为 0 或 2 这表示当 n 为偶数时,不可能存在合法
的树,返回空的 List。
3.full BT 的最小合法树为 n = 1 只有根节点的情况,所以 n = 1 也直接返回。
4.当 n 为奇数时,我们可以先把根节点设置好,并把剩下的节点分给左右子树去递回构
建,构建结果的左右子树组合就是解。
Java Code:
作者: killheken (帅哥诚)   2023-07-23 14:23:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com