NC77 调整数组顺序使奇数位于偶数前面(一)
1、解题思路
我小学弟弟都会做的题目
2、代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param array int整型一维数组
* @return int整型一维数组
*/
public int[] reOrderArray (int[] array) {
int[] temp = new int[array.length];
int l2 = 0;
int l1 = 0;
for (int i : array) {
if (i % 2 == 0) {
temp[l2++] = i;
} else {
array[l1++] = i;
}
}
for (int i = l1; i < array.length; i++) {
array[i] = temp[i - l1];
}
return array;
}
}
NC98 判断t1树中是否含有与t2树相同的子树
1、解题思路
这个题目需要一个复制函数,判断两个树是否完全相同。而且在主函数递归调用的时候,注意root1为空的时候。
2、代码
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root1 TreeNode类
* @param root2 TreeNode类
* @return bool布尔型
*/
private boolean isSame(TreeNode node1, TreeNode node2) {
if (node1 == null && node2 == null) {
return true;
} else if (node1 == null) {
return false;
} else if (node2 == null) {
return false;
} else if (node1.val == node2.val) {
return isSame(node1.left, node2.left) && isSame(node1.right, node2.right);
} else {
return false;
}
}
public boolean isContains(TreeNode root1, TreeNode root2) {
if (root1 == null) {
return false;
}
if (isSame(root1, root2)) {
return true;
} else {
return isContains(root1.left, root2) || isContains(root1.right, root2);
}
}
}
NC177 合并二叉树
1、解题思路
就递归调用吧
2、代码
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
if (t1 == null) {
return t2;
} else if (t2 == null) {
return t1;
} else {
int val = t1.val + t2.val;
TreeNode root = new TreeNode(val);
root.left = mergeTrees(t1.left, t2.left);
root.right = mergeTrees(t1.right, t2.right);
return root;
}
}
}