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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

完全二叉树的节点数

發布時間:2024/1/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 完全二叉树的节点数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • Leecode.222完全二叉樹的節點數
      • 思路分析
      • 層序遍歷_迭代
      • 遞歸_二叉樹的遍歷
      • 迭代_二叉樹的遍歷

Leecode.222完全二叉樹的節點數

給你一棵 完全二叉樹 的根節點 root ,求出該樹的節點個數。

完全二叉樹 的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其余每層節點數都達到最大值,并且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1~ 2h 個節點。

示例 1:

輸入:root = [1,2,3,4,5,6]
輸出:6
示例 2:

輸入:root = []
輸出:0
示例 3:

輸入:root = [1]
輸出:1

思路分析

這其實是非常簡單的一道題,博主用了三分鐘就寫完了,就是層序遍歷嘛,就算題目是N叉樹數的節點數還是用層序遍歷,若不懂層序遍歷,請轉博客二叉樹的層序遍歷。

層序遍歷_迭代

class Solution {public int countNodes(TreeNode root) {if (root == null) return 0;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.offer(root);int result = 0;while(!queue.isEmpty()) {int size = queue.size();for (int i = 0 ; i < size ; i++) {//每次彈出一個節點,result+1result ++;TreeNode cur = queue.peek();queue.poll();if (cur.left != null) queue.offer(cur.left);if (cur.right != null) queue.offer(cur.right);}}return result;} }

當然,我們也可以使用前中序遍歷來完成這道題,我們只需要稍微修改一下二叉樹的遍歷代碼即可

我們用后序遍歷來寫這道題比較方便

遞歸_二叉樹的遍歷

class Solution {public int countNodes(TreeNode root) {return countNum(root);}int countNum(TreeNode root) {if (root == null) return 0;int leftNum = countNum(root.left);int rightNum = countNum(root.right);int Num = 1 + leftNum + rightNum; return Num;} }

其實寫代碼的時候,并不建議大家使用遞歸,因為我們這些學生大多數對于遞歸只停留在會使用,更深層次的理解和運用很容易出錯,相對于迭代而言,簡單多了。

迭代_二叉樹的遍歷

class Solution {public int countNodes(TreeNode root) {if (root == null) return 0;Queue<TreeNode> queue = new LinkedList<TreeNode>();queue.offer(root);int result = 0;while (!queue.isEmpty()) {TreeNode cur = queue.peek();queue.poll();result++;if (cur.left != null) queue.offer(cur.left);if (cur.right != null) queue.offer(cur.right);}return result;} }

在做任何關于二叉樹的題的時候,中序遍歷其實都是用的比較少的,前序和后序,相對比較多。

若有誤,請指教!!

總結

以上是生活随笔為你收集整理的完全二叉树的节点数的全部內容,希望文章能夠幫你解決所遇到的問題。

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