顺序表
main函数中new了一个MyArrayList:在栈里面存放了一个myArrayList引用,指向堆中的一个对象,假设对象的地址为0x888,myArrayList存放的就是0x888
MyArrayList对象中有什么内容看他的属性即可,普通成员变量有elem和usedSize
elem new了一个int,在栈里面创建了一个内存
链表
单向、双向;带头、不带头;循环、非循环共8种组合
单向不带头非循环
双向不带头非循环
节点
单向不带头非循环:
一个节点=两个域,val-数据域、next-下一个节点的地址
head里面存储的是第一个节点(head头节点)的地址,head.next存储的就是下一个节点的地址
尾节点的next域为null
import java.util.*; /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class PalindromeList { public boolean chkPalindrome(ListNode head) { // write code here ListNode fast=head; ListNode slow = head; while(fast != null && fast.next != null){ fast = fast.next.next; slow = slow.next; } //slow走到中间位置-----翻转 ListNode cur = slow.next; while(cur != null){ ListNode curNext = cur.next; cur.next=slow; slow = cur; cur = curNext; }//反转完成 while(head != slow){ if(head.val != slow.val){ return false; } if(head.next == slow){ return true; } head = head.next; slow = slow.next; }return true; } }