zoukankan      html  css  js  c++  java
  • LintCode2016年8月8日算法比赛----等价二叉树

    等价二叉树

    题目描述

    检查两棵二叉树是否等价。等价意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数据相等。

    样例
          1             1
    	 /            / 
    	2   2   and   2   2
       /             /
      4             4
    

    这就是两棵等价的二叉树。

       	 1             1
    	/            / 
       2   3   and   2   3
      /               
     4                 4
    
    算法分析:
    递归遍历两棵二叉树的所有节点,并且判断节点数据是否相同
    

    Java算法解决:

    /**
     * Definition of TreeNode:
     * public class TreeNode {
     *     public int val;
     *     public TreeNode left, right;
     *     public TreeNode(int val) {
     *         this.val = val;
     *         this.left = this.right = null;
     *     }
     * }
     */
    public class Solution {
        /**
         * @param a, b, the root of binary trees.
         * @return true if they are identical, or false.
         */
        public boolean isIdentical(TreeNode a, TreeNode b) {
            // Write your code here
            if(a==null&&b==null){
    			return true;
    		}
    		else if(a==null||b==null){
    			return false;
    		}
    		else{
    			if(a.val!=b.val){
    				return false;
    			}
    			else{
    				boolean result=isIdentical(a.left, b.left);
    				if(!result){
    					return result;
    				}
    				else{
    					result=isIdentical(a.right, b.right);
    					return result;
    				}
    			}
    		}
        }
    }
  • 相关阅读:
    [转]进程间通信----pipe和fifo
    [转]udev
    [转]netlink
    [转]进程间通信-----管道
    [转]socket
    [转]armv8 memory system
    [转]内核态和用户态
    [转]dpdk内存管理
    meeting and robert rules
    notion
  • 原文地址:https://www.cnblogs.com/dongling/p/5795887.html
Copyright © 2011-2022 走看看