63.左叶子之和

迭代

class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        int sum=0;
        if(root==null){
            return 0;
        }
        TreeNode tn=root;
        Queue<TreeNode> qu=new LinkedList<>();
        qu.offer(tn);
        while(!qu.isEmpty()){
            int le=qu.size();
            while(le>0){
                tn=qu.poll();
                if(tn.left!=null){
                    qu.offer(tn.left);
                    if(tn.left.left==null&&tn.left.right==null){
                        sum+=tn.left.val;
                    }
                }
                if(tn.right!=null){
                    qu.offer(tn.right);
                }
                le--;
            }
        }
        return sum;
    }
}
class Solution(object):
    def sumOfLeftLeaves(self, root):
        sum=0
        if root is None:
            return sum
        tn=root
        qu=collections.deque()
        qu.append(tn)
        while qu:
            le=len(qu)
            while le>0:
                tn=qu.popleft()
                if tn.left:
                    qu.append(tn.left)
                    if tn.left.left is None and tn.left.right is None:
                        sum+=tn.left.val
                if tn.right:
                    qu.append(tn.right)
                le-=1
        return sum

递归(本方法非原创,来自代码随想录

递归(本方法非原创,来自代码随想录)
class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        if(root==null){
            return 0;
        }
        int rightSum=sumOfLeftLeaves(root.right);
        int leftSum=sumOfLeftLeaves(root.left);
        int sum=rightSum+leftSum;
        if(root.left!=null&&root.left.left==null&&root.left.right==null){
            sum=rightSum+leftSum+root.left.val;
        }
        return sum;
    }
}
递归(本方法非原创,来自代码随想录)
class Solution(object):
    def sumOfLeftLeaves(self, root):
        if root is None:
            return 0
        rightSum=self.sumOfLeftLeaves(root.right)
        leftSum=self.sumOfLeftLeaves(root.left)
        sum=rightSum+leftSum
        if root.left and root.left.left is None and root.left.right is None:
            sum=rightSum+leftSum+root.left.val
        return sum

猜你喜欢

转载自blog.csdn.net/Runner__Binger/article/details/143101008