力扣刷題記錄(三)(待完善)

今天就沒有去作每日一題了,開始刷hot100。直接從簡單的開始作,慢慢積累經驗和找回手感。java

今天的題目是:合併二叉樹。node

個人想法就是題目的想法,有個小細節就是,合併到第一棵樹上,若是有的分支沒有數,那就把這個地方用0代替。數據結構

這樣的話,位置對應並且加起來也不會錯。blog

可是爲何!!!又是時間超了,我枯了。待解決待解決it

import java.util.LinkedList ;
class Solution {
    public TreeNode mergeTrees(TreeNode t1, TreeNode t2) {
        Queue<TreeNode> q =new LinkedList<>();
        TreeNode tr1=null;//存儲節點值的
        TreeNode tr2=null;
        TreeNode tr0 = new TreeNode(0,null,null);
        //特殊狀況
        if(t1==null)
        {
            return t2;
        }
        //根節點入隊
        q.add(t1);
        q.add(t2);
        //層次遍歷
        while(!q.isEmpty())
        {
            //根節點出隊,相加
            tr1=q.poll();
            tr2=q.poll();
            tr1.val+=tr2.val;
            //左右節點入隊
            //若是節點爲null,就入隊0,而後相加不影響,且位置對應。
            //tr1
            if(tr1.left==null) q.offer(tr0);
            else q.offer(tr1.left);
            if(tr1.right==null) q.offer(tr0);
            else q.offer(tr1.right);
            //tr2
            if(tr2.left==null) q.offer(tr0);
            else q.offer(tr2.left);
            if(tr2.right==null) q.offer(tr0);
            else q.offer(tr2.right);
        }
        return tr1;
        }
}

  

  二叉樹的數據結構是:io

Definition for a binary tree node.
 public class TreeNode {
       int val;
       TreeNode left;
       TreeNode right;
       TreeNode(int x) { val = x; }
  }
相關文章
相關標籤/搜索