给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
class Solution { public int minDepth(TreeNode root) { if(root==null) return 0; int left = minDepth(root.left); int right = minDepth(root.right); if(left==0||right==0){ return left==0?right+1:left+1; } return Math.min(left,right)+1; }
}
|
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| class Solution { public boolean isValid(String s) { Stack<Character> stk = new Stack<>(); for(int i = 0;i<s.length();i++){ char c = s.charAt(i); if(c=='['||c=='('||c=='{'){ switch(c){ case '[': stk.push(']');break; case '(': stk.push(')');break; case '{': stk.push('}');break; } }else{ if(stk.size()==0||c!=stk.pop()){ return false; } } } return stk.isEmpty(); } }
|
3.Integer类了解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package main.test02;
public class Test04 { public static void main(String[] args) { Integer a = 12; Integer b = 12; System.out.println(a==b); Integer c = 999; Integer d = 999; System.out.println(c==d); Integer e = -12; Integer f = -12; System.out.println(e==f); } }
|
4.对象交换输出判断
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| package main.test02;
public class Test05 { public static void main(String[] args) { People xiaoming = new People("xiaoming",18); People xiaoli = new People("xiaoli",18); swap(xiaoming,xiaoli); System.out.println("xiaoming:"+xiaoming.getName()); System.out.println("xiaoli:"+xiaoli.getName()); } public static void swap(People x,People y){ People temp = x; x = y; y = temp; System.out.println("X:"+x.getName()); System.out.println("Y:"+y.getName()); } } class People{ private String name; private int age;
public People(String name, int age) { this.name = name; this.age = age; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; } }
|
5.Error和Exception的区别
Error:JVM 无法解决的严重问题,如栈溢出StackOverflowError
、内存溢出OOM
等。程序无法处理的错误。
Exception:其它因编程错误或偶然的外在因素导致的一般性问题。可以在代码中进行处理。如:空指针异常、数组下标越界等。