Leetcode_101_Symmetric Tree

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pistolove/article/details/42087039

本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42087039


Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree is symmetric:

    1
   / \
  2   2
 / \ / \
3  4 4  3

But the following is not:

    1
   / \
  2   2
   \   \
   3    3

Note:
Bonus points if you could solve it both recursively and iteratively.


思路:

(1)题意为判断一棵树是否轴对称。

(2)该题和“判断两棵树是否完全相同”类似,是其强化版,思路大体是一样的。

(3)本文也是采用递归的思想。只要树根不为空,且有左右孩子,则将其左右孩子视为两棵树,本题进行的比较与“判断两棵树是否完全相同”是不一样的,本题比较的是树相反孩子节点的比较,即左孩子与右孩子、右孩子与左孩子的比较,而“判断两棵树是否完全相同”不仅如此,还有左孩子与左孩子、右孩子与右孩子的比较。

(4)希望本文对你有所帮助。


算法代码实现如下所示:

public boolean isSymmetric(TreeNode root) {
    if(root==null){
		return true;
	}else if (root.left == null && root.right == null) {
		return true;
	} else if (root.left == null || root.right == null) {
		return false;
	} else {
		if (root.left.val != root.right.val) {
			return false;
		} else {
			return isSameTree(root.left, root.right);
		}
	}

}

public static boolean isSameTree(TreeNode r1, TreeNode r2) {
	if (r1 == null && r2 == null) {
		return true;
	} else if (r1 == null || r2 == null) {
		return false;
	} else {
		if (r1.val != r2.val) {
			return false;
		} else {
			boolean _left = isSameTree(r1.left, r2.right);
			boolean _right = isSameTree(r1.right, r2.left);

			if (_left && _right) {
				return true;
			} else {
				return false;
			}
		}
	}
}


Tree Tree Tree

11-05

Web应用程序中用拖放的方式产生的treeview加上节点为什么在.aspx.cs中看不到代码?rn如何才能手写代码产生树即节点?rn如果先用拖入的方式生成了树和节点,还能用代码加节点吗?rnrnrnusing System;rnusing System.Collections;rnusing System.ComponentModel;rnusing System.Data;rnusing System.Drawing;rnusing System.Web;rnusing System.Web.SessionState;rnusing System.Web.UI;rnusing System.Web.UI.WebControls;rnusing System.Web.UI.HtmlControls;rnrnnamespace WebApp1rnrn /// rn /// WebForm3 的摘要说明。rn /// rn public class treetest : System.Web.UI.Pagern rn protected Microsoft.Web.UI.WebControls.TreeView TreeView1;//这里是拖放后自动生成的;rn protected System.Web.UI.WebControls.Label Label1;rn TreeNode root = new TreeNode();rn//我手工代码加根节点就不能编译rnD:\Inetpub\wwwroot\WebApp1\treetest.aspx.cs(21): 找不到类型或命名空间名称“TreeNode”(是否缺少 using 指令或程序集引用?)rnrnrn rn private void Page_Load(object sender, System.EventArgs e)rn rn rn rn rnrn #region Web Form Designer generated codern override protected void OnInit(EventArgs e)rn rn //rn // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。rn //rn InitializeComponent();rn base.OnInit(e);rn rn rn /// rn /// 设计器支持所需的方法 - 不要使用代码编辑器修改rn /// 此方法的内容。rn /// rn private void InitializeComponent()rn rn this.Load += new System.EventHandler(this.Page_Load);rnrn rn #endregionrn rnrn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试