树的子结构(判断B是否为A的子树)
https://leetcode.cn/problems/shu-de-zi-jie-gou-lcof/
/** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ //思路: //1、递归A树,找到比较B树的入口节点 //2、从入口节点开始,同时递归和比较AB树的值 //3、如果A树先递归完,或者比较不相等,则返回false func isSubStructure(A *TreeNode, B *TreeNode) bool { if A==nil||B==nil{ return false } if A.Val==B.Val&&check(A.Left,B.Left)&&check(A.Right,B.Right){ return true } return isSubStructure(A.Left,B)||isSubStructure(A.Right,B) } func check(A,B *TreeNode) bool{ if B==nil{ return true } if A==nil{ return false } if A.Val==B.Val{ return check(A.Left,B.Left)&&check(A.Right,B.Right) }else{ return false } }
二叉树的建立:https://www.cnblogs.com/-citywall123/p/16434923.html
等风起的那一天,我已准备好一切