题目:
解题思路:
递归实现后序遍历
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* expandBinaryTree(struct TreeNode* root){
if(root == NULL) return root;
expandBinaryTree(root -> left);
expandBinaryTree(root -> right);
if(root -> left != NULL) {
struct TreeNode* newL = (struct TreeNode*) malloc (sizeof(struct TreeNode));
newL -> val = -1;
newL -> left = root -> left;
root -> left = newL;
newL -> right = NULL;
}
if(root -> right != NULL) {
struct TreeNode* newR = (struct TreeNode*) malloc (sizeof(struct TreeNode));
newR -> val = -1;
newR -> right = root ->right;
root -> right = newR;
newR -> left = NULL;
}
return root;
}