LinkedList

Leave a comment

May 17, 2016 by oneOokay

>>>Venusaur<<<

LinkedList

非常非常基础,一定要知道哟

  • ListNode: 实际上是存储的是一个reference,物理地址,4字节 (像一个信封)
  • ListNode.val 4字节 && ListNode.next 4字节
  • 当一个listnode被读取的时候:系统按照listnode存储的地址(信封上的地址)找到物理地址
  • 当读取listnode.val的时候,读取地址的接下来的4个字节,为value
  • 当读取listnode.next的时候,读取地址的接下来的5-8字节,为listnode.next的地址
  • 不建议画链表: 1 -> 2 -> 3 -> null ; 1|-> 2|->3|-> null 好一些,有标明next地址的存在
  • 下例中:第一次print(head) 输出:1,2,3; 第二次输出依旧是:1,2,3;
    • node1 = node2: 把node2存储的地址赋给了node1,所以此时node1指向的地址与node2指向的地址一致
    • 但是head并没有变,1,2,3,以及各自的next的value都没变
    • 所以第二次print(head)输出依旧是:1,2,3.
void main(){
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
ListNode head = node1;

node1.next = node2;
node2.next = node3;

print(head);

node1 = node2;

print(head);
}
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: