鏈表和節點

 

 

 

# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None
class Solution(object):
        tmp = ListNode(0)#ListNode()爲LeetCode給出的函數,代碼塊頂部有詳細定義
        res = tmp
        print("000 tmp is ",tmp)
        print("000 tmp.next is,",tmp.next)
        print("000 res is ",res)
        print("000 res.next is,",res.next)
        res.next = ListNode(1)#將res指向ListNode(1),此時res.next的值由None變爲ListNode(1)在內存中的地址。
        print("111 res is ",res)
        print("111 res.val is ",res.val)
        print("111 res.next is,",res.next)
        node0=res.next
        print("00011 res is ",res)
        print("00011 res.val is ",res.val)
        print("00011 res.next is,",res.next)
        print("node0.val is",node0.val)
        print("node0.next is ",node0.next)
        print("node0 is ",node0)
        node1=ListNode(2)#定義一個節點,節點的值域是2,指針域是None.
        print("0000 node1.next is",node1.next)
        node1.next=res#將node1指向res,此時 node1的值域是2,指針域由None變爲res在內存中的地址。
        print("1111 node1 =",node1)#node1即表示節點,也表示節點在內存中的地址值。
        print("1111 node1.next=",node1.next)
        print("1111 node1.val=",node1.val)
        print("111111 res is ",res)
        print("111111 res.val is ",res.val)
        print("111111 res.next is ",res.next)
        print("1111 node0  is ",node0)
        print("1111node0.val is",node0.val)
        print("1111node0.next is ",node0.next)
        
        #return 0
Solution()


			

注意:1,res 表示的是節點的名字,也表示的是節點在內存中的地址。

2,每個節點有兩個部分,左邊部分稱爲值域,用來存放用戶數據;右邊部分稱爲指針域,用來存放指向下一個元素的指針。指針域的值就是所指向的下個節點在內存中的地址。這本例中:node1.next就是node1的指針域,通過node1.next=res,將node1指向了res(res表示的是res在內存中的地址),所以node1.next的值是res在內存中的地址。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章