首页 > 其他分享 >面试必刷TOP101:30、二叉搜索树与双向链表

面试必刷TOP101:30、二叉搜索树与双向链表

时间:2023-11-21 23:32:15浏览次数:28  
标签:右子 right return 30 pRoot 链表 必刷 null left

题目

面试必刷TOP101:30、二叉搜索树与双向链表_非递归

面试必刷TOP101:30、二叉搜索树与双向链表_子树_02

题解

/*思路:首先根节点以及其左右子树,左子树的左子树和右子树的右子树相同
* 左子树的右子树和右子树的左子树相同即可,采用递归
* 非递归也可,采用栈或队列存取各级子树根节点
*/
public class Solution {
	boolean isSymmetrical(TreeNode pRoot)
	{
		if(pRoot == null){
			return true;
		}
		return comRoot(pRoot.left, pRoot.right);
	}
	private boolean comRoot(TreeNode left, TreeNode right) {
		// TODO Auto-generated method stub
		if(left == null) return right==null;
		if(right == null) return false;
		if(left.val != right.val) return false;
		return comRoot(left.right, right.left) && comRoot(left.left, right.right);
	}
}

标签:右子,right,return,30,pRoot,链表,必刷,null,left
From: https://blog.51cto.com/u_16244372/8507499

相关文章

  • 11.17双向循环链表应用
     #include<bits/stdc++.h>usingnamespacestd;typedefstructf{intdata;f*prior;f*next;}node,*Node;voidbuild(Nodep){intn;cin>>n;while(n--){intx;cin>>x;Nodenow=newnode()......
  • 11.15链表逆置
     structListNode*reverse(structListNode*head){structListNode*L=(structListNode*)malloc(sizeof(structListNode)),*p,*q;L->next=NULL;p=head;//中间量while(p){q=(structListNode*)malloc(sizeof(structListNode));......
  • (链表)21-分隔链表
    /***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){this.val=val;this.next=next;}*}......
  • 面试题 02.07. 链表相交
    2023-11-21面试题02.07.链表相交-力扣(LeetCode)思路:1暴力法:判断的是next是不是相等1hashmap存储其中一个的全部,遍历另一个看是不是在map中(用set就行,不用map)2双指针:用2个指针分别遍历2链表(都是遍历完一个继续遍历另一个),最终会相等的,相等就是找到了暴力法:/***Defi......
  • 142. 环形链表 II
    2023-11-21142.环形链表II-力扣(LeetCode)思路:1hashmap:将其next一个个存入,直到找到next已经存在的,这里用set就行2快慢指针,一个一步步走,一个一次走2步,自己画一下图,其一定会在环中相遇,且一定是多走一圈,然后相遇时,将慢指针保留,继续走,重新定义一个指针从一开始走,他们相等时就......
  • T401305 平面划分(easy) 题解
    LinkT401305平面划分(easy)Solution平面上\(n\)条直线所划分处的区域最大个数\(L_n\)是多少我们考虑假设已经有\(n-1\)条直线,我们需要画一条直线,这条直线最多和\(n-1\)条直线相交产生\(n\)个新的区域所以我们得到了\[\begin{align*} &L_0=1\\ &L_n=L_{n-1}......
  • 单链表建表,倒置,遍历(不使用Class,简洁易懂)
    在C++中通过递归方法实现单链表倒置初始化列表structListNode{ intval; LiseNode*next; ListNode(intx):val(x),next(NULL){}};遍历voidquery_node(){ node*p=head; while(p!=NULL){ cout<<p->data<<''; p=p->nxt; } cout<<endl;}建表(......
  • 20230814
    大概是一段自己与自己的对话?有点魔怔,有点中二,但是自己再看一遍自己写的东西之后真的很有感触。(莫名觉得很像芙宁娜qwq)「学得更深,更加感受到自己的弱小,越来越迷茫,越来越绝望。」『但至少这代表着你的认知再次拓宽了,认知面足够宽,才会看到更多的未知,才会发现人外有人,天外有天,这......
  • 20230810
    想起来我以前在自己的一个小号上面写过一点东西,打算搬过来。反正那个洛谷号算是废了吧。毕竟我写的就是我写的,不会因为发布在哪里就改变了其性质,对吧?所以我选择发出来。(这一段话是20231121加的,下面才是正文)心情不好。放假一直在颓。虽然说放假是用来放松的,并且我们也训练了......
  • BX1E OP30皮带更换标准流程
    1拆下座板,底部用10mm内六角固定,拆下上方固定螺丝和垫片。 2拆下4颗螺丝,把上盖和轴承取出,如果很紧,敲一下上盖。    3拆除4颗固定螺丝,将整个机构取出 4背面的黑色POM仅靠两个定位销固定,翘下 5拆下固定环,松开5个固定螺丝,取下铝板和轴承注意:轴承下方还有个黑色......