我写过很多PAT和leetcode的代码,有需要可以私信我。
下图展示我写过的"二叉树剪枝"
源代码见网页端(LeetCode的main函数不需要写)
#include
/*
// Definition for a binary tree node.
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
*/
class Solution {
bool cutZero(TreeNode* next) {
if (NULL == next)return true;
bool zero= (0 == next->val); //最终返回 zero
if (cutZero(next->left))
next->left = NULL;
else zero = false;
if (cutZero(next->right))
next->right = NULL;
else zero = false;
return zero;
}
public:
TreeNode* pruneTree(TreeNode* root) {
if(cutZero(root))root=NULL; //整个树都是0
return root;
}
};
可以的,私信联系