力扣刷题记录(三)(待完善)

今天就没有去作每日一题了,开始刷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; }
  }
相关文章
相关标签/搜索