<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【廣度優(yōu)先搜索】513.找樹左下角的值

          共 1485字,需瀏覽 3分鐘

           ·

          2021-01-30 23:10

          【廣度優(yōu)先搜索】513.找樹左下角的值


          給定一個二叉樹,在樹的最后一行找到最左邊的值。


          示例 1:


          輸入:


          ? ? 2

          ? ?/ \

          ? 1? ?3


          輸出:

          1

          ?


          示例 2:


          輸入:


          ? ? ? ? 1

          ? ? ? ?/ \

          ? ? ? 2? ?3

          ? ? ?/? ?/ \

          ? ? 4? ?5? ?6

          ? ? ? ?/

          ? ? ? 7


          輸出:

          7



          題目解析

          找到?樹 左下角的值,需要做的操作:

          1. 首先需要找到?每一層最左邊的值;

          2. 從 這些值中找到 最 下層的值

          題目解答

          方法:層次遍歷的 非遞歸方法

          思路:

          1. ? 利用 層遍歷的?非遞歸方法 遍歷 每一層

          2. 保存每一層 的 最左邊一個元素;

          3. 最后取最后一個即為 答案

          代碼展示

          # Definition for a binary tree node.# class TreeNode:#     def __init__(self, val=0, left=None, right=None):#         self.val = val#         self.left = left#         self.right = rightclass Solution:    def findBottomLeftValue(self, root: TreeNode) -> int:        '''            方法:隊列迭代 (層次遍歷非遞歸)        '''        # step 1:判空        res = -1        if not root:            return res         # step 2: 初始化隊列        queue = collections.deque()        queue.append(root)        # step 3:層次遍歷 非遞歸法        while queue:            # step 4:每一層做遍歷            for i in range(len(queue)):                node = queue.popleft()                #  step 5:每一層 第一個元素                if i==0:                    res = node.val                # step 6:root 的 左子樹 入隊                if node.left:                    queue.append(node.left)                # step 7:root 的 右子樹 入隊                if node.right:                    queue.append(node.right)             return res
          復(fù)雜度計算
          • ?時間復(fù)雜度:O(N),其中 N 是二叉樹的節(jié)點數(shù)。二叉樹的所有節(jié)點有且只會被訪問一次,因此時間復(fù)雜度為 O(N)。

          • -空間復(fù)雜度:O(N),當樹為平衡二叉樹時,最多有N/2個樹節(jié)點入隊,使用 O(N)?大小的額外空間

          運行結(jié)果





          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青超碰在线观看2012 | 偷拍自拍第五页 | 中日韩欧美一级A片免费 | 色婷婷色99国产综合精品 | 五月天毛片 |