最近莫名其妙的当上了班长,开学后事情还挺多。平常晚上练了点题,也懒得记录到这里了。
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/symmetric-tree/solution/dui-cheng-er-cha-shu-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
个人微改:
import java.util.LinkedList;
import java.util.Queue;
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Symmetric{
public boolean isSymmetric(TreeNode root) {
return check(root,root);
}
public boolean check(TreeNode p,TreeNode q) {
if(p == null && q == null) {
return true;
}
if(p == null || q == null) {
return false;
}
return p.val == q.val && check(p.left, q.right) && check(p.right, q.left);
}
}
public class SymmetricTree {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1 = "[1,2,3]";
String str2 = "[1,2,2]";
TreeNode root1 = stringToTreeNode(str1);
TreeNode root2 = stringToTreeNode(str2);
boolean flag = new Symmetric().isSymmetric(root1);
System.out.println(flag);
boolean flag2 = new Symmetric().isSymmetric(root2);
System.out.println(flag2);
}
public static TreeNode stringToTreeNode(String input) {
input = input.trim();
input = input.substring(1,input.length()-1);
if(input.length()==0) {
return null;
}
String[] parts = input.split(",");
String item = parts[0];
TreeNode root = new TreeNode(Integer.parseInt(item));
Queue<TreeNode> nodeQueue = new LinkedList<>();
nodeQueue.add(root);
int index = 1;
while(!nodeQueue.isEmpty()) {
TreeNode node = nodeQueue.remove();
if(index == parts.length) {
break;
}
item = parts[index++];
item = item.trim();
if(!item.equals("null")) {
int leftNumber = Integer.parseInt(item);
node.left = new TreeNode(leftNumber);
nodeQueue.add(node.left);
}
if(index == parts.length) {
break;
}
item = parts[index++];
item = item.trim();
if(!item.equals("null")) {
int rightNumber = Integer.parseInt(item);
node.right = new TreeNode(rightNumber);
nodeQueue.add(node.right);
}
}
return root;
}
public static String booleanToString(boolean input) {
return input?"True":"False";
}
}

分享作为班长的经历,探讨如何用编程思维解决班级事务管理问题,如对称树算法在平衡任务分配中的应用。
2116

被折叠的 条评论
为什么被折叠?



