精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

把二叉樹揉碎之一

開發(fā) 前端
本篇文章內(nèi)容較基礎(chǔ),對于沒有學(xué)過數(shù)據(jù)結(jié)構(gòu)的同學(xué)會有一些幫助,如果你已經(jīng)學(xué)過的話,也可以復(fù)習(xí)一下,查缺補漏,后面會繼續(xù)更新這個系列。

[[397667]]

這假期咋就唰的一下就沒啦,昨天還跟放假第一天似的,今天就開始上班了。

既然開工了,那咱們就隨遇而安唄,繼續(xù)努力搬磚吧。

下面我們將鏡頭切到袁記菜館。

小二:掌柜的,最近大家都在忙著種樹,說是要保護環(huán)境。

老板娘:樹 ? 咱們店有呀,前幾年種的那棵葡萄樹,不是都結(jié)果子了嗎?就數(shù)你吃的最多。

小兒:這.......。

大家應(yīng)該猜到,咱們今天要嘮啥了。

之前給大家介紹了鏈表,棧,哈希表 等數(shù)據(jù)結(jié)構(gòu)

今天咱們來看一種新的數(shù)據(jù)結(jié)構(gòu),樹。

PS:本篇文章內(nèi)容較基礎(chǔ),對于沒有學(xué)過數(shù)據(jù)結(jié)構(gòu)的同學(xué)會有一些幫助,如果你已經(jīng)學(xué)過的話,也可以復(fù)習(xí)一下,查缺補漏,后面會繼續(xù)更新這個系列。

本文大綱

本文大綱

注:可能有的同學(xué)不喜歡手機閱讀,所以將這篇同步在了我的倉庫,大家可以去 Github 進行閱讀,點擊文章最下方的閱讀原文即可

我們先來看下百度百科對樹的定義

樹是 n (n >= 0) 個節(jié)點的有限集。n = 0 時 我們稱之為空樹, 空樹是樹的特例。

在任意一棵非空樹中:

  • 有且僅有一個特定的節(jié)點稱為根(Root)的節(jié)點
  • 當 n > 1 時,其余節(jié)點可分為 m (m > 0)個互不相交的有限集 T1、T2、........Tm,其中每一個集合本身又是一棵樹,并且稱為根的子樹。

我們一起來拆解一下上面的兩句話,到底什么是子樹呢?見下圖

例如在上面的圖中

有且僅有一個特定的節(jié)點稱為根節(jié)點,也就是上圖中的橙色節(jié)點。

當節(jié)點數(shù)目大于 1 時,除根節(jié)點以外的節(jié)點,可分為 m 個互不相交的有限集 T1,T2........Tm。

例如上圖中,我們將根節(jié)點以外的節(jié)點,分為了 T1 (2,3,4,5,6,7),T2(8,9)兩個有限集。

那么 T1 (綠色節(jié)點)和 T2(藍色節(jié)點)就是根節(jié)點(橙色節(jié)點)的子樹。

我們拆解之后發(fā)現(xiàn),我們上圖中的例子符合樹的要求,另外不知道大家有沒有注意到這個地方。

除根節(jié)點以外的節(jié)點,可分為 m 個互不相交的有限集。

那么這個互不相交又是什么含義呢?見下圖。

我們將 (A) , (B) , (C) , (D) 代入上方定義中發(fā)現(xiàn),(A) , (B) 符合樹的定義,(C), (D) 不符合,這是因為 (C) , (D) 它們都有相交的子樹。

好啦,到這里我們知道如何辨別樹啦,下面我們通過下面兩張圖再來深入了解一下樹。

主要從節(jié)點類型,節(jié)點間的關(guān)系下手。

這里節(jié)點的高度和深度

可能容易記混,我們代入到現(xiàn)實即可。

我們求物體深度時,從上往下測量,求高度時,從下往上測量,節(jié)點的高度和深度也是如此。

二叉樹

我們刷題時遇到的就是二叉樹啦,下面我們一起來了解一下二叉樹

二叉樹前提是一棵樹,也就是需要滿足我們樹的定義的同時,還需要滿足以下要求

每個節(jié)點最多有兩個子節(jié)點,分別是左子節(jié)點和右子節(jié)點。

注意我們這里提到的是最多,所以二叉樹并不是必須要求每個節(jié)點都有兩個子節(jié)點,也可以有的僅有一個左子節(jié)點,有的節(jié)點僅有一個右子節(jié)點。

下面我們來總結(jié)一下二叉樹的特點

  • 每個節(jié)點最多有兩棵子樹,也就是說二叉樹中不存在度大于 2 的節(jié)點,節(jié)點的度可以為 0,1,2。
  • 左子樹和右子樹是有順序的,有左右之分。
  • 假如只有一棵子樹 ,也要區(qū)分它是左子樹還是右子樹

好啦,我們已經(jīng)了解了二叉樹的特點,那我們分析一下,下圖中的樹是否滿足二叉樹定義,共有幾種二叉樹。

上圖共為 5 種不同的二叉樹,在二叉樹的定義中提到,二叉樹的左子樹和右子樹是有順序的,所以 B,C 是兩個不同的二叉樹,故上圖為 5 種不同的二叉樹。

特殊的二叉樹

下面我們來說幾種比較特殊的二叉樹,可以幫助我們刷題時,考慮到特殊情況。

滿二叉樹

滿二叉樹:在一棵二叉樹中,所有分支節(jié)點都存在左子樹和右子樹,并且所有的葉子都在同一層,這種樹我們稱之為滿二叉樹.見下圖

我們發(fā)現(xiàn)只有 (B) 符合滿二叉樹的定義,我們發(fā)現(xiàn)其實滿二叉樹也為完全二叉樹的一種。

完全二叉樹

完全二叉樹:葉子結(jié)點只能出現(xiàn)在最下層和次下層,且最下層的葉子結(jié)點集中在樹的左部。

哦!我們可以這樣理解,除了最后一層,其他層的節(jié)點個數(shù)都是滿的,而且最后一層的葉子節(jié)點必須靠左。

下面我們來看一下這幾個例子

上面的幾個例子中,(A)(B)為完全二叉樹,(C)(D)不是完全二叉樹

斜二叉樹

這個就很好理解啦,斜二叉樹也就是斜的二叉樹,所有的節(jié)點只有左子樹的稱為左斜樹,所有節(jié)點只有右子樹的二叉樹稱為右斜樹.

諾,下面這倆就是.

另外還有 一些二叉樹的性質(zhì), 比如第 i 層至多有多少節(jié)點,通過葉子節(jié)點求度為 2 的節(jié)點, 通過節(jié)點樹求二叉樹的深度等, 這些是考研常考的知識, 就不在這里進行贅述,需要的同學(xué)可以看一下王道或者天勤的數(shù)據(jù)結(jié)構(gòu), 上面描述的很具體, 并附有證明過程.

好啦,我們已經(jīng)了解了二叉樹,那么二叉樹如何存儲呢?

如何存儲二叉樹

二叉樹多采用兩種方法進行存儲,基于數(shù)組的順序存儲法和基于指針的二叉鏈式存儲法

這里我們再來回顧一下如何用數(shù)組存儲完全二叉樹.

我們首先看根節(jié)點,也就是值為 1 的節(jié)點,它在數(shù)組中的下標為 1 ,它的左子節(jié)點,也就是值為 4 的節(jié)點,此時索引為 2,右子節(jié)點也就是值為 2 的節(jié)點,它的索引為 3。

我們發(fā)現(xiàn)其中的關(guān)系了嗎?

數(shù)組中,某節(jié)點(非葉子節(jié)點)的下標為 i , 那么其左子節(jié)點下標為 2*i(這里可以直接通過相乘得到左孩子, 也就是為什么空出第一個位置, 如果從 0 開始存,則需要 2i+1 才行), 右子節(jié)點為 2i+1,其父節(jié)點為 i/2 。既然我們完全可以根據(jù)索引找到某節(jié)點的 左子節(jié)點 和右子節(jié)點,那么我們用數(shù)組存儲是完全沒有問題的。

但是,我們再考慮一下這種情景,如果我們用數(shù)組存儲斜樹時會出現(xiàn)什么情況?

通過 2*i 進行存儲左子節(jié)點的話,如果遇到斜樹時,則會浪費很多的存儲空間,這樣顯然是不合適的,

所以說當存儲完全二叉樹時,我們用數(shù)組存儲,無疑是最省內(nèi)存的,但是存儲斜樹時,則就不太合適。

所以我們下面介紹一下另一種存儲結(jié)構(gòu),鏈式存儲結(jié)構(gòu).

因為二叉樹的每個節(jié)點, 最多有兩個孩子, 所以我們只需為每個節(jié)點定義一個數(shù)據(jù)域,兩個指針域即可

val 為節(jié)點的值, left 指向左子節(jié)點, right 指向右子節(jié)點。

下面我們對樹 1, 2, 3, 4, 5, 6, 7 使用鏈式存儲結(jié)構(gòu)進行存儲,即為下面這種情況。

二叉鏈表的節(jié)點結(jié)構(gòu)定義代碼

  1. public class BinaryTree { 
  2.     int val; 
  3.     BinaryTree left
  4.     BinaryTree right
  5.     BinaryTree() {} 
  6.     BinaryTree(int val) { this.val = val; } 
  7.     BinaryTree(int val, BinaryTree left, BinaryTree right) { 
  8.         this.val = val; 
  9.         this.left = left
  10.         this.right = right
  11.     } 

另外我們在刷題的時候, 可以自己實現(xiàn)一下數(shù)據(jù)結(jié)構(gòu), 加深我們的理解, 提升基本功, 而且面試考的也越來越多.

好啦,下面我們說一下樹的遍歷,

下面我會用動圖的形式進行描述,很容易理解, 我也會為大家總結(jié)對應(yīng)的題目,歡迎各位閱讀.

遍歷二叉樹

二叉樹的遍歷指從根節(jié)點出發(fā),按照某種次序依次訪問二叉樹的所有節(jié)點,使得每個節(jié)點都被訪問且訪問一次.

我們下面介紹二叉樹的幾種遍歷方法及其對應(yīng)的題目, 前序遍歷, 中序遍歷 , 后序遍歷 , 層序遍歷 .

前序遍歷

前序遍歷的順序是, 對于樹中的某節(jié)點,先遍歷該節(jié)點,然后再遍歷其左子樹,最后遍歷其右子樹.

只看文字有點生硬, 下面我們直接看動畫吧

前序遍歷

測試題目: leetcode 144. 二叉樹的前序遍歷

代碼實現(xiàn)(遞歸版)

  1. class Solution { 
  2.     public List<Integer> preorderTraversal(TreeNode root) { 
  3.         List<Integer> arr = new ArrayList<>(); 
  4.         preorder(root,arr); 
  5.         return arr; 
  6.  
  7.     } 
  8.     public void preorder(TreeNode root,List<Integer> arr) { 
  9.         if (root == null) { 
  10.             return
  11.         } 
  12.         arr.add(root.val); 
  13.         preorder(root.left,arr); 
  14.         preorder(root.right,arr); 
  15.     } 

時間復(fù)雜度 : O(n) 空間復(fù)雜度 : O(n) 為遞歸過程中棧的開銷,平均為 O(logn),但是當二叉樹為斜樹時則為 O(n)

為了控制文章篇幅, 二叉樹的迭代遍歷形式, 會在下篇文章進行介紹。

中序遍歷

中序遍歷的順序是, 對于樹中的某節(jié)點,先遍歷該節(jié)點的左子樹, 然后再遍歷該節(jié)點, 最后遍歷其右子樹

繼續(xù)看動畫吧, 如果有些遺忘或者剛開始學(xué)數(shù)據(jù)結(jié)構(gòu)的同學(xué)可以自己模擬一下執(zhí)行步驟.

中序遍歷

測試題目: leetcode 94 題 二叉樹的中序遍歷

代碼實現(xiàn)(遞歸版)

  1. class Solution { 
  2.     public List<Integer> inorderTraversal(TreeNode root) { 
  3.           
  4.          List<Integer> res = new ArrayList<>(); 
  5.          inorder(root, res); 
  6.          return res; 
  7.  
  8.     } 
  9.     public void inorder (TreeNode root, List<Integer> res) { 
  10.         if (root == null) { 
  11.             return
  12.         } 
  13.         inorder(root.left, res); 
  14.         res.add(root.val); 
  15.         inorder(root.right, res); 
  16.  
  17.     } 

時間復(fù)雜度 : O(n) 空間復(fù)雜度 : O(n)

后序遍歷

后序遍歷的順序是,對于樹中的某節(jié)點, 先遍歷該節(jié)點的左子樹, 再遍歷其右子樹, 最后遍歷該節(jié)點.

哈哈,繼續(xù)看動畫吧,看完動畫就懂啦.

后序遍歷

測試題目: leetcode 145 題 二叉樹的后序遍歷

代碼實現(xiàn)(遞歸版)

  1. class Solution { 
  2.     public List<Integer> postorderTraversal(TreeNode root) { 
  3.          List<Integer> res = new ArrayList<>(); 
  4.          postorder(root,res); 
  5.          return res; 
  6.     } 
  7.  
  8.     public void postorder(TreeNode root, List<Integer> res) { 
  9.         if (root == null) { 
  10.             return
  11.         } 
  12.         postorder(root.left, res); 
  13.         postorder(root.right, res); 
  14.         res.add(root.val); 
  15.     } 

時間復(fù)雜度 : O(n) 空間復(fù)雜度 : O(n)

層序遍歷

顧名思義,一層一層的遍歷.

比如剛才那棵二叉樹的層序遍歷序列即為 1 ~ 9.

二叉樹的層序, 這里我們需要借助其他數(shù)據(jù)結(jié)構(gòu)來實現(xiàn), 我們思考一下, 我們需要對二叉樹進行層次遍歷, 從上往下進行遍歷, 我們可以借助什么數(shù)據(jù)結(jié)構(gòu)來幫我們呢 ?

我們可以利用隊列先進先出的特性,使用隊列來幫助我們完成層序遍歷, 具體操作如下

讓二叉樹的每一層入隊, 然后再依次執(zhí)行出隊操作,

對該層節(jié)點執(zhí)行出隊操作時, 需要將該節(jié)點的左孩子節(jié)點和右孩子節(jié)點進行入隊操作,

這樣當該層的所有節(jié)點出隊結(jié)束后, 下一層也就入隊完畢,

不過我們需要考慮的就是, 我們需要通過一個變量來保存每一層節(jié)點的數(shù)量.

這樣做是為了防止, 一直執(zhí)行出隊操作, 使輸出不能分層

好啦,下面我們直接看動畫吧,

測試題目: leetcode 102 二叉樹的層序遍歷

題目代碼

  1. class Solution { 
  2.     public List<List<Integer>> levelOrder(TreeNode root) { 
  3.      
  4.       List<List<Integer>> res = new ArrayList<>(); 
  5.       if (root == null) { 
  6.           return res; 
  7.       }  
  8.       //入隊 root 節(jié)點,也就是第一層   
  9.       Queue<TreeNode> queue = new LinkedList<>(); 
  10.       queue.offer(root); 
  11.       while (!queue.isEmpty()) { 
  12.           List<Integer> list = new ArrayList<>(); 
  13.           int size = queue.size(); 
  14.           for (int i = 0; i < size; ++i) { 
  15.               TreeNode temp = queue.poll(); 
  16.               //孩子節(jié)點不為空,則入隊 
  17.               if (temp.left != null)  queue.offer(temp.left); 
  18.               if (temp.right != null) queue.offer(temp.right); 
  19.               list.add(temp.val); 
  20.           } 
  21.           res.add(list); 
  22.       } 
  23.       return res; 
  24.     } 

時間復(fù)雜度:O(n) 空間復(fù)雜度:O(n)

大家如果吃透了二叉樹的層序遍歷的話,可以順手把下面幾道題目解決掉,思路一致,甚至都不用拐彎

  • leetcode 107. 二叉樹的層序遍歷 II
  • leetcode 103. 二叉樹的鋸齒形層序遍歷

上面兩道題僅僅是多了翻轉(zhuǎn)

  • leetcode 199. 二叉樹的右視圖
  • leetcode 515. 在每個樹行中找最大值
  • leetcode 637. 二叉樹的層平均值

這三道題,僅僅是加了一層的一些操作

  • leetcode 116 填充每個節(jié)點的下一個右側(cè)
  • leetcode 117 填充每個節(jié)點的下一個右側(cè)2

這兩個題對每一層的節(jié)點進行鏈接即可,兩道題目代碼一致

大家可以去順手解決這些題目,但是也要注意一下其他解法,把題目吃透。不要為了數(shù)目而刷題,好啦,今天的節(jié)目就到這里啦,我們下期見!

本文轉(zhuǎn)載自微信公眾號「袁廚的算法小屋」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系袁廚的算法小屋公眾號。

 

責任編輯:武曉燕 來源: 袁廚的算法小屋
相關(guān)推薦

2020-04-27 07:05:58

二叉樹左子樹右子樹

2021-04-20 08:37:14

數(shù)據(jù)結(jié)構(gòu)二叉樹

2021-04-19 07:47:42

數(shù)據(jù)結(jié)構(gòu)二叉樹Tree

2021-03-17 08:19:22

二叉樹LeetCode

2013-07-15 16:35:55

二叉樹迭代器

2021-09-29 10:19:00

算法平衡二叉樹

2021-12-17 14:26:58

二叉樹節(jié)點數(shù)量

2020-09-23 18:25:40

算法二叉樹多叉樹

2021-04-28 20:12:27

數(shù)據(jù)結(jié)構(gòu)創(chuàng)建

2021-11-29 10:40:58

二叉樹鏡像節(jié)點

2022-10-12 23:25:17

二叉樹父節(jié)點根節(jié)點

2022-10-26 23:58:02

二叉樹數(shù)組算法

2021-03-22 08:23:29

LeetCode二叉樹節(jié)點

2023-05-08 15:57:16

二叉樹數(shù)據(jù)結(jié)構(gòu)

2021-08-27 11:36:44

二叉樹回溯節(jié)點

2022-07-27 07:45:53

二叉樹鏡像函數(shù)

2022-11-06 19:43:10

二叉樹指針節(jié)點

2021-12-05 18:25:12

二叉樹路徑節(jié)點

2018-03-15 08:31:57

二叉樹存儲結(jié)構(gòu)

2021-10-12 09:25:11

二叉樹樹形結(jié)構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號

国产二区在线播放| 久久国产手机看片| 91tv官网精品成人亚洲| 亚洲乱码国产乱码精品精大量| 欧美日韩国产综合视频在线观看 | 成人欧美一区二区三区视频xxx| 亚洲一区在线| 日本午夜视频在线观看| 欧美专区在线观看| 激情视频一区二区三区| 六十路息与子猛烈交尾| 亚洲美女av在线| 色爱综合av| 亚洲av成人无码久久精品| 在线视频一区二区三区| 91久久偷偷做嫩草影院电| 无码国产69精品久久久久同性| 在线观看欧美www| 精品国产一区探花在线观看| 欧美亚洲色综久久精品国产| 国产+人+亚洲| 欧美精品啪啪| www色com| 日韩在线视频二区| 欧美激情综合色综合啪啪| 99国产精品无码| 在线观看视频一区二区欧美日韩| 亚洲精品一区二区三区蜜桃| 国产乱码一区| 国产精品久久久久aaaa樱花 | 国产xxxxxxxxx| 一区二区三区久久精品| 欧美gayvideo| 国产探花视频在线播放| 久久久久久亚洲精品中文字幕| 欧美成人嫩草网站| 亚洲综合图片一区| 美女撒尿一区二区三区| 在线看片欧美| 国产免费视频一区二区三区| 91亚洲人电影| 国产区在线观看成人精品| 黄色在线网站| 最新天堂在线视频| 精品无人区太爽高潮在线播放| 欧美女优在线视频| 一炮成瘾1v1高h| 国产精品一区av| 成人国产精品视频| av网站免费播放| 亚洲综合成人婷婷小说| 成人午夜碰碰视频| 精品亚洲成a人片在线观看| 久久久精品国产一区二区三区| 欧美日韩精品在线播放| 少妇无套高潮一二三区| 欧美日韩精品在线| 久久av影视| 无码h肉动漫在线观看| 久久成人一区二区| 国产一区二区三区黄视频| 日本韩国在线视频爽| 中文字幕欧美视频| 日产精品久久久一区二区福利| av中文字幕在线不卡| 天天操天天干天天| 色一情一乱一伦一区二区三区| 国产精品免费免费| 国产伦一区二区三区| 蜜臀尤物一区二区三区直播| 亚洲精品久久区二区三区蜜桃臀 | 久9久9色综合| 亚洲av无码乱码国产精品久久 | 国产一区二区三区四区五区| 手机在线免费看片| 久久人人爽人人| 国产精品乱码一区二区三区软件 | 欧美一区二区精品在线| 国产精品97| 朝桐光av在线一区二区三区| av动漫免费看| 亚洲一区www| 国产·精品毛片| 亚洲福利影院| gogo亚洲国模私拍人体| 国产一区香蕉久久| 欧美在线观看视频在线| 亚洲在线电影| 在线观看免费网站黄| 一级黄色片大全| 国产精品一码二码三码在线| 欧美日韩在线播放三区| 久久精品国产亚洲aⅴ| 欧美一级在线| 在线免费观看av网址| 免费试看一区| 一本色道综合亚洲| 美女www一区二区| av成人影院在线| 亚洲精品乱码日韩| 亚洲精品综合久久中文字幕| 国产精品午夜在线| 欧美极品在线| 欧美丰满艳妇bbwbbw| 亚洲中国色老太| 欧美精品一区二区三区蜜桃视频| 国产精品mm| 天天av天天翘| 老头老太做爰xxx视频| 亚洲高清在线观看一区| 日韩hd视频在线观看| 92国产精品观看| 国产精品一区二区av交换| a免费在线观看| 日韩伦人妻无码| 91蝌蚪视频在线| 国产欧美日韩中文字幕| 亚洲日本在线a| 欧美涩涩网站| 国产三级电影在线播放| 久久99久久98精品免观看软件 | 在线成人av影院| 日韩福利电影在线| 全球中文成人在线| 香蕉人妻av久久久久天天| 999热精品视频| 国产精品成人久久久久| 天天综合日日夜夜精品| 亚洲视频www| 国产真实有声精品录音| 欧美激情黑人| 国产又粗又猛又黄| 午夜男人的天堂| 亚洲一区二区三区av无码| 国产一区二区日韩精品欧美精品| 7777精品伊人久久久大香线蕉完整版 | 亚洲天堂视频网站| 农村妇女精品一二区| 国产一区二区三区四区五区加勒比 | 极品美乳网红视频免费在线观看| 中文字幕一区二区三区人妻| 少妇高潮大叫好爽喷水| 国产日韩欧美综合精品| 欧美国产在线视频| 欧美一区在线视频| 亚洲mv在线观看| 亚洲精品美女91| 日韩欧美视频在线播放| 在线视频cao| av资源网在线观看| 日日噜噜噜噜人人爽亚洲精品| 亚洲午夜久久久久久久久红桃 | 午夜福利视频一区二区| 91嫩草|国产丨精品入口| 欧美一级免费在线| 97在线国产视频| 国产精品1区2区在线观看| 欧美视频在线观看 亚洲欧| 国产精品网曝门| 日本欧美大码aⅴ在线播放| 久久久久久久久国产一区| 国产精品xxx在线观看| 性欧美hd调教| 天天干天天插天天操| 亚洲区一区二区三| 日韩国产在线一区| 欧美国产日韩一区二区三区| 欧美日韩视频第一区| 一区二区不卡在线播放| 免费在线日韩av| 久久麻豆精品| 日韩aaa久久蜜桃av| 日韩黄色三级| 福利一区二区三区视频在线观看| 啊v视频在线| 国产成人手机在线| 亚洲欧美一区二区三区在线观看 | 欧美一二区在线观看| 国产va免费精品观看精品| 超级碰碰久久| 你懂的视频在线| 国产手机在线视频| 萌白酱视频在线| 农村妇女精品一区二区| 玖玖爱在线观看| 性久久久久久久久久久| 手机成人av在线| 国产乱码精品一区二区三区日韩精品| 久久99久久99精品免观看粉嫩| 亚洲三级av在线| 欧美v国产在线一区二区三区| 91精品中文字幕一区二区三区 | 69174成人网| 久久久久久97| 人体精品一二三区| 国产亚洲视频在线| 亚洲国产精品久久| 欧美一区二区三区免费大片| 亚洲国产精品久久人人爱| 久久久精品人体av艺术| 国产麻豆欧美日韩一区| 国产91精品露脸国语对白| 国产精品18久久久久久vr| 国产a久久麻豆| 国模一区二区三区白浆| 欧美三级免费| 66国产精品| 欧美日韩综合| 亚洲激情一区| 蜜桃av一区二区三区| 成人在线视频一区二区| 国产日韩欧美一区二区三区乱码 | 91国拍精品国产粉嫩亚洲一区| 三妻四妾完整版在线观看电视剧 | 国产精品亚洲欧美日韩一区在线| 国产亚av手机在线观看| gogo久久| 精品三区视频| 伊人久久大香线蕉| 青青草国产成人a∨下载安卓| 激情久久婷婷| kk眼镜猥琐国模调教系列一区二区| 99久久99久久综合| 久久久精品tv| 国产日韩欧美在线一区| 日韩av在线资源| 久久久蜜桃精品| 中文字幕视频一区| 亚洲国产精品久久艾草纯爱| 亚洲一区中文日韩| 日韩精品在线看| 国产成人拍精品视频午夜网站| 欧美18视频| 天堂精品一区二区三区| 精品国产av无码一区二区三区| 自拍日韩亚洲一区在线| 成人免费观看毛片| 亚洲成人av免费观看| 久久久精品视频在线| 亚洲精品国产一区二| 国产粉嫩一区二区三区在线观看| avtt亚洲| 久久天天久久| 欧美www视频在线观看| 最新国产乱人伦偷精品免费网站| 成人综合在线视频| 久久女同精品一区二区| 一本到一区二区三区| 亚洲美女在线看| 91精品国产91久久| 国产在线精品播放| 91制片厂免费观看| 日本美女视频一区| 成人免费看片98| 欧美在线精品一区二区三区| 成人激情久久| 国产精品入口| 久久久久久免费| 欧美电影一区二区三区| 中文字幕在线视频日韩| 成人在线观看91| 丰满饥渴老女人hd| 日韩视频免费观看高清| 丰满少妇被猛烈进入| 欧美大片免费| 欧美黄在线观看| 99久久久国产精品| 91麻豆精品久久久久蜜臀| 九色精品美女在线| 99热这里只有精品免费| 糖心vlog免费在线观看| av片在线免费观看| 亚洲欧美一级| 久久99久久99小草精品免视看| 黑人巨大精品欧美一区二区三区 | 日韩欧美大片在线观看| 成人全视频高清免费观看| 精品久久久久久久久久岛国gif| 日本欧美久久久久免费播放网| 亚洲精品伦理在线| 久久在线视频在线| 久久久7777| 爱爱免费小视频| 欧美理论在线观看| 女一区二区三区| 久久久久久久久99精品| 日韩欧美一级片| 成人国产精品免费视频| 一区二区三区国产好的精华液| 精品视频一二三区| 91av亚洲| 全部av―极品视觉盛宴亚洲| 欧美亚洲国产一卡| 91免费看片网站| 亚洲乱码国产乱码精品精大量| 国产欧美综合视频| 青草久久视频| 久久久久久麻豆| 正在播放亚洲1区| 日韩精品一线二线三线| 在线视频这里只有精品| 国产理论在线| 韩国三级在线一区| 欧美日韩一区小说| 国产伦精品一区二区三区四区免费| 免费网站在线观看黄| 丰满少妇xoxoxo视频| 美女福利一区二区| 高清av一区二区| 精品嫩草影院久久| 在线国产99| 最近中文字幕av| 亚洲午夜久久| 亚洲国产精品嫩草影院| 欧美在线观看网址综合| 九九九九九九九九| 天堂中文在线官网| 中文字幕乱码亚洲无线精品一区| 亚洲人吸女人奶水| 国产在线播放不卡| 欧美激情国内自拍| 97免费观看视频| 欧美日韩国产一区二区三区不卡| 一区二区三区高清在线| 成人网中文字幕| 色婷婷综合在线观看| 人成网站在线观看| 国产日韩1区| 欧美大片在线观看一区| 日本视频一区在线观看| 国产亚洲色婷婷久久99精品| 婷婷久久免费视频| 久久综合狠狠综合久久激情| 国产成人精品久久二区二区91 | 5278欧美一区二区三区| 日本高清免费在线视频| 瑟瑟在线观看| 亚洲毛片播放| 亚洲欧美激情四射在线日| 亚洲熟妇av日韩熟妇在线 | 国产精品久久久久久妇女| 久久九九久久九九| 91亚洲一区精品| 97人妻精品一区二区三区免费 | 国产精品一区在线观看乱码| 欧美性猛交xxxx乱大交退制版 | 中文字幕国产精品| 天天爽天天爽夜夜爽| 风间由美一区| 国产精品一区二区久久精品爱涩| 国内精品一区二区三区| 国精产品一区一区三区免费视频| 麻豆蜜桃在线观看| 亚洲精品网站在线观看| 国产日韩欧美在线看| 久久午夜无码鲁丝片| 美女网站一区| 欧美精品v日韩精品v韩国精品v| 欧美一级爱爱视频| 番号集在线观看| 国产精品一卡二卡在线观看| 最近2019中文字幕大全第二页| 不卡的在线视频| 黄在线免费看| 国内精品伊人久久久久av一坑| 国产精品精品视频| 美国黄色一级毛片| 涩涩av在线| 久久久精品影视| 欧洲精品久久| 日本福利片在线| 欧美激情四色| 精品国产一区二区三区久久狼黑人 | 成人自拍av| 日韩一区欧美小说| 奇米四色中文综合久久| 国产乡下妇女做爰视频| 欧美偷拍自拍| 国产亚洲精品综合一区91| 亚洲区 欧美区| 欧美一级免费| 91福利在线观看| 四季av一区二区| 国产成人精品亚洲日本在线观看| 亚洲aaa精品| av五月天在线| 欧美无毛视频| 精品久久久久久综合日本欧美| 免费黄色a级片| 里番精品3d一二三区| 亚洲高清久久网| 亚洲色图偷拍视频| 日韩欧美中文字幕在线视频| 日韩欧美精品在线观看| 免费一级特黄毛片| 四虎国产精品永久在线国在线| 亚洲成av人片www| 天堂一区在线观看| 韩日精品一区| 日本高清不卡在线观看|