zoukankan      html  css  js  c++  java
  • [leetcode] 22.Same Tree

    同是递归简单题

    public class Solution {
        public boolean isSameTree(TreeNode p, TreeNode q) {
            boolean flag = true;
            if(p == null && q == null)
                return true;
            else if(p != null && q != null && p.val == q.val)
                return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
            else
                return false;
        }
    }
    

    若不用递归: 来自: http://www.cnblogs.com/lautsie/p/3247097.html

    public class Solution {
        public boolean isSameTree(TreeNode p, TreeNode q) {
            LinkedList<TreeNode> left = new LinkedList<TreeNode>();
            LinkedList<TreeNode> right = new LinkedList<TreeNode>();
    
            left.offer(p);
            right.offer(q);
    
            while (left.size() != 0 && right.size() != 0) {
                TreeNode ln = left.poll();
                TreeNode rn = right.poll();
                if (ln == null && rn == null) continue;
                if (ln == null || rn == null) return false;
                if (ln.val != rn.val) return false;
                
                left.offer(ln.left); left.offer(ln.right);
                right.offer(rn.left); right.offer(rn.right);
            }
            if (left.size() != 0 || right.size() != 0) return false;
            return true;
        }
    }
    

      

    基础:

    此处的LinkedList继承自Queue

    LinkedList是List接口的实现类,也是Deque接口的实现类,Deque接口是Queue的子接口。兼具双向队列,栈和List集合的用法

    1)LinkedList作为List使用时,一般采用add / get方法来 压入/获取对象
    2)LinkedList作为Queue使用时,才会采用 offer/poll 等方法,没有empty(),这些方法是用于支持队列应用的。 与一般队队一样,offer插入元素到队尾,poll访问并删除队首元素。另有pollLast可以访问并删除队尾元素。
    3)LinkedList作为栈使用时,会用到 push/pop方法, 注意,栈的操作是在队首方向进行的。即push会插到队首,pop会访问并删除队首元素。

    访问不删除对象还可用getFirst()/getLast()  peekFirst()/peekLast() 

  • 相关阅读:
    苹果推送APNS自己总结
    Windows下LDAP服务器配置
    service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误
    PHP 中的 9 个魔术方法
    使用 Equinox 开发 OSGi 应用程序
    使用 Equinox 框架进行 OSGi 环境下的 Web 开发
    探索 OSGi 框架的组件运行机制
    基于 OSGi 和 Spring 开发 Web 应用
    Equinox OSGI ServletBridge 原理与实践
    利用 Eclipse 开发基于 OSGi 的 Bundle 应用
  • 原文地址:https://www.cnblogs.com/guozhiguoli/p/3776852.html
Copyright © 2011-2022 走看看