已知二叉树的
前序遍历:ABCDEFGHK
中序遍历:BDCAEHGKF
根据已有条件,画出这个二叉树,同时输出该二叉树的后序遍历
后序遍历:DCBHKGFEA
给定一个数字,求该数字的二进制的1的个数
import java.util.Scanner;
/*
给定一个数字,求该数字的二进制的1的个数
*/
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = sc.nextInt();
System.out.println("该数字的二进制的1的个数为:" + bitCount(num));
}
public static int bitCount(int num){
int count = 0;
while(num != 0){
num &= (num - 1);
count++;
}
return count;
}
}
给定一个数组,该数组中除了一个元素只出现了一次,其他元素都出现两次
找到这个没有重复的元素
public class Demo02 {
public static void main(String[] args) {
int[] arr = {
1, 2, 1, 3, 3, 4, 4};
int num = findNoDuplication(arr);
System.out.println("没有重复的数为:" + num);
}
public static int findNoDuplication(int[] arr){
int num = 0;
for (int i = 0; i < arr.length; i++){
num = num ^ arr[i];
}
return num;
}
}
给定一个数组,数组的元素共N+1个, 元素是从1到n的联系自然数,其中一个重复值
找到这个重复的元素
public class Demo03 {
public static void main(String[] args) {
int[] arr = {
1, 2, 3, 4, 8, 5, 6, 7, 8};
int num = findDuplication(arr);
System.out.println("重复的元素为:" + num);
}
public static int findDuplication(int[] arr){
int num = 0;
for (int i = 0; i < arr.length - 1; i++){
for (int j = i + 1; j < arr.length; j++){
if ((arr[i] ^ arr[j