C Program to Swap Nodes in Binary Tree

#include <stdio.h>
#include <stdlib.h>
//Binary tree has data,pointer left&right child
struct binaryTreeNode{
int data;
struct binaryTreeNode *left;
struct binaryTreeNode *right;
};
//I created a new node
struct binaryTreeNode *createNodes(int data){
//I created new node
struct binaryTreeNode *node = (struct binaryTreeNode*)malloc(sizeof(struct binaryTreeNode));
// Assign data to newNode, leftchildren= NULL and rightchildren=NULL
node -> data = data;
node -> left = NULL;
node -> right = NULL;
return node;
}
struct binaryTreeNode *generateBinaryTree(){
//I define root&nodes
struct binaryTreeNode *root = createNodes(5);
root->left = createNodes(7);
root->right = createNodes(9);
root->left->left = createNodes(11);
root->left->right = createNodes(13);
root->right->left = createNodes(15);
root->right->right = createNodes(17);
root->left->left->left = createNodes(19);
root->right->left->left = createNodes(21);
root->right->left->right = createNodes(23);
root->right->left->left->left = createNodes(25);
return root;
}
//I wrote the previous Inorder function before without swap
void findInorder(struct binaryTreeNode *node) {
if (node == NULL)
return;
findInorder(node->left);
printf(“%d “, node->data);
findInorder(node->right);
}
// Here, I have defined a temporary temp.
//Then,I assigned node-> left to temp.
//After then,I assigned node -> right instead of node -> left.
//Finally;I assigned the last temp to node-> right
void swapBinaryTree(struct binaryTreeNode *node){
if (node == NULL)
return;
else {
struct binaryTreeNode *temp;
temp= node -> left;
node -> left = node -> right;
node -> right = temp;
swapBinaryTree(node->left);
swapBinaryTree(node->right);
}
}
int main() {
// I set root the binary tree nodes that I specified above
struct binaryTreeNode *root = generateBinaryTree();
printf(“ \n Inorder traversal of binary tree is = \n\n”);
// First I printed the inorder form
findInorder(root);
// Then I applied the swapBinaryTree function
swapBinaryTree(root);
// Finally, I printed the swap version
printf(“ \n\n After swap Inorder traversal of binary tree= \n\n”);
findInorder(root);
return 0;
}

Output
Inorder traversal of binary tree :
19 11 7 13 5 25 21 15 23 9 17
After swap Inorder traversal of binary tree :
17 9 23 15 21 25 5 13 7 11 19