国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[Leetcode-Tree]Sum of Left Leaves

ashe / 730人閱讀

摘要:解題思路這個題目其實就是基于先序遍歷,用遞歸和非遞歸思想都可以。遞歸求所有左葉子節點的和,我們可以將其分解為左子樹的左葉子和右子樹的左葉子和遞歸結束條件找到左葉子節點,就可以返回該節點的。代碼非遞歸判斷是否為左葉子節點遞歸

Sum of Left Leaves
Find the sum of all left leaves in a given binary tree.

Example:

    3
   / 
  9  20
    /  
   15   7

There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

1.解題思路

這個題目其實就是基于先序遍歷,用遞歸和非遞歸思想都可以。
1)非遞歸:
借助棧,在push節點的時候判斷是否是左葉子節點,如果是就累計進sum中。
2)遞歸:
求所有左葉子節點的和,我們可以將其分解為左子樹的左葉子和+右子樹的左葉子和
遞歸結束條件:找到左葉子節點,就可以返回該節點的val。

2.代碼

1) 非遞歸

public class Solution {
    Stack s=new Stack();
     int sum=0;
    public int sumOfLeftLeaves(TreeNode root) {
        if(root==null) return 0;
        pushLeft(root);
        while(!s.empty()){
            TreeNode node=s.pop();
            if(node.right!=null)
                pushLeft(node.right);
        }
        return sum;
    }
    private void pushLeft(TreeNode root){
        TreeNode node=root;
        while(node!=null){
            s.push(node);
            //判斷是否為左葉子節點
            if(node.left!=null&&node.left.left==null&&node.left.right==null)
                sum+=node.left.val;
            node=node.left;
            
        }
    }
}

2)遞歸

public class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        if(root==null) return 0;
        int leftsum,rightsum;
        if(root.left!=null&&root.left.left==null&&root.left.right==null)
            leftsum=root.left.val;
        else leftsum=sumOfLeftLeaves(root.left);
        rightsum=sumOfLeftLeaves(root.right);
        return leftsum+rightsum;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69802.html

相關文章

  • [Leetcode-Tree] Path Sum I II III

    摘要:解題思路利用遞歸,對于每個根節點,只要左子樹和右子樹中有一個滿足,就返回每次訪問一個節點,就將該節點的作為新的進行下一層的判斷。代碼解題思路本題的不同點是可以不從開始,不到結束。代碼當前節點開始當前節點左節點開始當前節點右節點開始 Path SumGiven a binary tree and a sum, determine if the tree has a root-to-lea...

    notebin 評論0 收藏0
  • [Leetcode-Tree] Sum Root to Leaf Numbers

    摘要:解題思路本題要求所有從根結點到葉子節點的路徑和,我們用遞歸實現。結束條件當遇到葉子節點時,直接結束,返回計算好的如果遇到空節點,則返回數值。 Sum Root to Leaf NumbersGiven a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a numbe...

    BigNerdCoding 評論0 收藏0
  • [LeetCode] 404. Sum of Left Leaves

    Problem Find the sum of all left leaves in a given binary tree. Example: 3 / 9 20 / 15 7 There are two left leaves in the binary tree, with values 9 and 15 respectively. Return ...

    Mr_zhang 評論0 收藏0
  • [Leetcode-Tree]Binary Tree Maximum Path Sum

    摘要:但是本題的難點在于,使用遞歸實現,但是前面的第四種情況不能作為遞歸函數的返回值,所以我們需要定義兩個值,代表單邊路徑的最大值,用于遞歸用于和回路的較大值。 Binary Tree Maximum Path SumGiven a binary tree, find the maximum path sum. For this problem, a path is defined as a...

    caige 評論0 收藏0
  • [Leetcode-Tree]Maximum / Minimum Depth of Binary T

    摘要:解題思路用遞歸實現很簡單,對于每個根節點,最大深度就等于左子樹的最大深度和右子樹的最大深度的較大值。解題思路本題的注意點在于如果某個根節點有一邊的子樹為空,那么它的深度就等于另一邊不為空的子樹的深度,其他的邏輯與上一題相同。 Maximum Depth of Binary TreeGiven a binary tree, find its maximum depth. The maxi...

    Thanatos 評論0 收藏0

發表評論

0條評論

ashe

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<