题目一
解法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isBalanced(TreeNode root) {
if(root==null){
return true;
}else{
return Math.abs(method(root.left) - method(root.right)) <= 1&&isBalanced(root.left) && isBalanced(root.right);
}
}
public int method(TreeNode root){
if(root==null){
return 0;
}else{
return Math.max(method(root.left),method(root.right))+1;
}
}
}
题目二
解法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root==null) return true;
return method(root.left,root.right);
}
public boolean method(TreeNode l,TreeNode r){
if(l==null&&r==null) return true;
if(l==null||r==null||l.val!=r.val) return false;
return method(l.left,r.right)&&method(l.right,r.left);
}
}
题目三
解法
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteNode(ListNode head, int val) {
ListNode temp = new ListNode(-1);
temp.next = head;
ListNode ans = temp;
while(temp.next!=null){
if(temp.next.val==val){
temp.next = temp.next.next;
}else{
temp = temp.next;
}
}
return ans.next;
}
}
题目四
解法
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
}