2019年5月暑期实习生字节跳动的面试题

今年我是大三,准备了下面试字节跳动的后台C++开发,当接到笔试的时候就很兴奋,打开一看编程题2道

第一道题目袋盖如下:(我只记得题目的大致意思)
一个满二叉树有n层,请你输出这个二叉树的镜像,测试用例如下:
输入
在这里插入图片描述

输出:
在这里插入图片描述
代码如何下:大概意思就是将一个二叉树的左右孩子进行交换即可。

#include<iostream>
//二叉树镜像 
using namespace std;
typedef struct Node{
	char data;
	struct Node *Lchild;
	struct Node *Rchild;
}*Tree;

void out(Tree &T){
	
	if(T){
		cout<<T->data<<" ";
		out(T->Lchild);
		out(T->Rchild);
	}
	
}


二叉树的左右孩子进行交换即可
void out2(Tree &T){
	
	if(T){	
	Tree temp=T->Lchild;//交换是用到的中间变量 
	//交换左右节点 
	T->Lchild=T->Rchild;
	T->Rchild=temp;
	
	//再次递归即可 
	out2(T->Lchild);
	out2(T->Rchild);
	
	}
	
}
void input(Tree &T){
	char ch;
	cin>>ch;
	if(ch=='#'){
		T=NULL;
	}
	else{
		T=new Node;
		T->data=ch;
		input(T->Lchild);
		input(T->Rchild);
	} 
}

int main(){
	while(true){
	
	Tree T;
	input(T);
	out(T);
	cout<<"交换后"<<endl;
	out2(T);
	out(T);
}
	return 0;
} 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值