日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度

發布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

微信搜一搜:bigsai
大家都在關注的刷題、學習數據結構和算法寶藏項目
關注回復進群即可加入力扣打卡群,歡迎劃水。近期打卡:
LeetCode 97交錯字符串(動態規劃)
LeetCode 98驗證二叉搜素樹(中序遍歷)&99恢復二叉搜索樹
LeetCode 100相同的樹&101對稱二叉樹

二叉樹的層序遍歷

給你一個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。

示例:
二叉樹:[3,9,20,null,null,15,7],

3/ \9 20/ \15 7 返回其層序遍歷結果:[[3],[9,20],[15,7] ]

分析
二叉樹層序遍歷過程詳細看這篇,直接套魔板即可。

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>>list=new ArrayList<List<Integer>>();if(root==null)return list;Queue<TreeNode>q1=new ArrayDeque<TreeNode>();q1.add(root);while (!q1.isEmpty()) {int size=q1.size();List<Integer>value=new ArrayList<Integer>();for(int i=0;i<size;i++){TreeNode pNode=q1.poll();if(pNode.left!=null)q1.add(pNode.left);if(pNode.right!=null)q1.add(pNode.right);value.add(pNode.val);}list.add(value);}return list;} }

二叉樹鋸齒形遍歷

給定一個二叉樹,返回其節點值的鋸齒形層序遍歷。(即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行)。

例如:

給定二叉樹 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回鋸齒形層序遍歷如下:[[3],[20,9],[15,7] ]

分析:
就是一個特殊的層序遍歷。更換層的時候需要更換節點順序,這需要我們用兩個內存空間配合達到分清奇偶的目的。這里有的是從左到右,有的是從右到左,理論上可以借助棧將集合的元素反轉但是沒必要。我用兩個List集合直接剛就行了。
首先進行分析:

  • 第一行從左到右,第二行從右到左,第三行從左到右。兩個list裝的是節點,而還需要每次遍歷根據奇數和偶數的特性將節點裝起來。
  • (普遍方法)你可以全部按照正常的順序分層裝起來,只不過如果偶數層遍歷的時候從右往左加進結果集合。比較好想,容易操作,但是偶數層在添加節點時候不能同時遍歷。
  • 但是筆者瞎搞發現一個規律。全部從右往左遍歷。只不過在奇數行先添加(左后右)。而偶數行進行右左添加,相當于這個順序操作一次被顛倒一次,每次添加節點都可以直接訪問而不需要單獨的訪問。(這個方法可能復雜了上面一條其實就可以了)

實現代碼為:

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>>list=new ArrayList<List<Integer>>();if(root==null)return list;ArrayList<TreeNode>nodelist1=new ArrayList<TreeNode>();//用來模擬堆棧用ArrayList<TreeNode>nodelist2=new ArrayList<TreeNode>();nodelist1.add(root);int num=1;//做奇數偶數while (!nodelist1.isEmpty()||!nodelist2.isEmpty()) {ArrayList<Integer>team=new ArrayList<Integer>();if(num%2==1) {for(int i=nodelist1.size()-1;i>=0;i--){TreeNode teamNode=nodelist1.get(i);team.add(teamNode.val);if(teamNode.left!=null)nodelist2.add(teamNode.left);if(teamNode.right!=null)nodelist2.add(teamNode.right);}nodelist1.clear();}else {for(int i=nodelist2.size()-1;i>=0;i--){TreeNode teamNode=nodelist2.get(i);team.add(teamNode.val);if(teamNode.right!=null)nodelist1.add(teamNode.right);if(teamNode.left!=null)nodelist1.add(teamNode.left);}nodelist2.clear();}list.add(team);num++;}return list;} }

二叉樹的最大深度

給定一個二叉樹,找出其最大深度。

二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。

說明: 葉子節點是指沒有子節點的節點。

示例:

給定二叉樹 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回它的最大深度 3 。

分析
可以使用二叉樹的遍歷同時記錄深度,保存最大的深度即可。
具體代碼為:

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {int maxhigh;public int maxDepth(TreeNode root) {maxDepth(root,0);return maxhigh;}private void maxDepth(TreeNode root, int high) {// TODO Auto-generated method stubif(high>maxhigh)maxhigh=high;if(root==null)return ;else {maxDepth(root.left, high+1);maxDepth(root.right, high+1);}} }

原創不易,bigsai請你幫兩件事幫忙一下:

  • star支持一下, 您的肯定是我在平臺創作的源源動力。

  • 微信搜索「bigsai」,關注我的公眾號,不僅免費送你電子書,我還會第一時間在公眾號分享知識技術。加我還可拉你進力扣打卡群一起打卡LeetCode。

  • 記得關注、咱們下次再見!

    總結

    以上是生活随笔為你收集整理的LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美三级三级三级爽爽爽 | 亚洲成a人v欧美综合天堂麻豆 | 九色av| 国产一区二区视频免费在线观看 | 国产v综合v亚洲欧美久久 | 国产一级做a爰片在线看免费 | 黄色免费在线网址 | 亚洲天堂一区在线观看 | 18被视频免费观看视频 | 免费的av片 | 极品美妇后花庭翘臀娇吟小说 | 精品国产av色一区二区深夜久久 | 欧美一二三级 | 国产一区在线免费 | a v视频在线播放 | 久久96| 高跟肉丝丝袜呻吟啪啪网站av | 欲求不满在线小早川怜子 | 亚洲最大激情网 | 一级片小视频 | 日本美女动态 | 夜色成人| 在线免费视频一区二区 | 顶级嫩模啪啪呻吟不断好爽 | 国内精品在线播放 | 国产欧美日韩精品在线 | 日本在线一级片 | 日本一区二区三区精品 | 久久99国产综合精品免费 | 在线观看免费看片 | 少妇视频在线观看 | 国产成人精品女人久久久 | 国产精品二区视频 | 思思久久久 | 红桃视频91| 色屁屁在线 | 日本草草影院 | 吞精囗交69激情欧美 | 手机在线看永久av片免费 | 青娱乐极品在线 | 岳奶大又白下面又肥又黑水多 | 成人免费看片网站 | 99热思思 | 亚洲理论视频 | 亚洲精品白浆高清久久久久久 | 高清不卡一区二区三区 | jiizzyou欧美2 | 日韩av在线播 | 色狠狠一区二区三区香蕉 | 国产高潮流白浆喷水视频 | 一区二区三区视频免费看 | 蜜桃传媒一区二区亚洲 | 青青在线播放 | 午夜操操 | 精品网站 | 色蜜桃av | 啪啪免费小视频 | 欧美一二三 | 国产三级自拍 | 国产人妻一区二区 | 国产成人小视频在线观看 | 亚洲人妻一区二区三区 | 日韩久久精品 | 国内精品福利视频 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 水牛影视av一区二区免费 | 国产又粗又长又黄的视频 | 大陆av在线播放 | 干骚视频 | 色很久 | 国产婷婷色一区二区三区 | 天堂在线国产 | 国产片网址| 亚洲精品网站在线播放gif | 国产免费黄网站 | 成人免费在线视频网站 | 少妇高潮毛片 | 国产呻吟av | www.av小说| 国产suv精品一区二区 | 久久嫩 | 欧美精品日韩在线观看 | 日韩精品一区在线观看 | 亚洲女同女同女同女同女同69 | 在线亚洲免费 | 国产传媒一区二区 | 岛国大片在线免费观看 | 亚洲高清免费观看 | av男人网| 高清无打码 | 日本va欧美va精品发布 | 久久久久久久久久免费视频 | 色噜噜狠狠狠综合曰曰曰88av | 国产高清一区二区 | 黄色大片在线看 | 国产麻豆精品在线 | 国产男女在线 | 91直接进入 | 男女一起插插插 |