/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/classSolution{public ListNode reverseList(ListNode head){
ListNode prev = null, curr = head;while(curr != null){
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;}return prev;}}
25. 合并两个排序的链表
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/classSolution{public ListNode mergeTwoLists(ListNode l1, ListNode l2){
ListNode data =newListNode(0), cur = data;while(l1!=null && l2 != null){if(l1.val < l2.val){
cur.next = l1;
l1 = l1.next;}else{
cur.next = l2;
l2 = l2.next;}
cur = cur.next;}
cur.next = l1 != null ? l1:l2;return data.next;}}
26. 树的子结构
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/classSolution{publicbooleanDoesTreeHaveTree(TreeNode A, TreeNode B){if(B == null)returntrue;if(A == null)returnfalse;if(A.val != B.val)returnfalse;returnDoesTreeHaveTree(A.left, B.left)&&DoesTreeHaveTree(A.right, B.right);}publicbooleanisSubStructure(TreeNode A, TreeNode B){boolean result =false;if(A != null && B != null){//if(A.val == B.val) result =DoesTreeHaveTree(A, B);if(!result) result =isSubStructure(A.left, B);if(!result) result =isSubStructure(A.right, B);}return result;}}
27. 二叉树的镜像
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/classSolution{public TreeNode mirrorTree(TreeNode root){if(root == null)return null;
TreeNode node = root.right;
root.right =mirrorTree(root.left);
root.left =mirrorTree(node);return root;}}