좌엽지합

2468 단어
이 블로그 링크:https://www.cnblogs.com/ping2yingshi/p/13499752.html
좌엽지합
제목 링크:https://leetcode-cn.com/problems/sum-of-left-leaves/
두 갈래 나무에 주어진 모든 왼쪽 잎의 합을 계산하다.
예:
3/\9 20/\15 7
이 두 갈래 나무 중에는 두 개의 왼쪽 잎이 있는데, 각각 9와 15이기 때문에 24로 돌아간다
문제:
사고방식: 차원이 두루 흐르고 왼쪽 아이의 잎사귀 노드가 비어 있지 않으면 왼쪽 아이의 수치를 더한다.
주의: 제목 요구는 왼쪽 아이의 노드만 구하는 것이지 왼쪽 나무의 노드가 모두 화합을 구하는 것이 아니기 때문에 판단할 때 왼쪽 잎 노드의 아버지 노드를 판단하고 판단 조건은 아버지 노드의 왼쪽 아이가 존재하고 왼쪽이 하나의 잎 노드인지 판단해야 왼쪽 아이의 노드를 결과에 넣는다.
코드:
 
class Solution {
    public int sumOfLeftLeaves(TreeNode root) {
        if(root==null)
        return 0;
       
        Queue  queue=new LinkedList();
        int sum=0;
        queue.add(root);
        while(!queue.isEmpty())
        {
           TreeNode node=queue.poll();
            if(node.left!=null&&(node.left.left==null&&node.left.right==null))
                  sum+=node.left.val;
            if(node.left!=null)
              { 
                  queue.add(node.left);
              }
             
              if(node.right!=null)
              {
                
                  queue.add(node.right);
              }


        }
        return sum;

    }
}

좋은 웹페이지 즐겨찾기