1 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 2 思路和方法 (1)先在A中找和B的根节点相同的结点 (2)找到之后遍历对应位置的其他结点,直到B中结点遍历完,都相同时,则B是A的子树 (3)对应位置的结点不相同时,退出继续在A中寻找和B的根节点相同的结点,重复步骤,直到有任何一棵二叉树为空退出 3 C++核心代码 3.1 递归实现1 /* struct TreeNode { int val; struct TreeNode *left…
/** 题目:hdu6035 Colorful Tree 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035 题意:给定一棵树,每个节点有一个颜色值.定义每条路径的值为经过的节点的不同颜色数.求所有路径的值和. 思路:看题解后,才想出来的.树形dp. 求所有路径的值和 = 路径条数*总颜色数(n*(n-1)*colors/2)-sigma(每种颜色没有经过的路径条数) 主要是求每种颜色没有经过的路径条数. 画一棵树,我直接用颜色值表示节点编号. 2…
#include <iostream> #include <cstdio> #include <stdio.h> #include <string> #include <queue> #include <stack> using namespace std; class Node{ public : char data; struct Node *lchild,*rchild; }; class BiTree{ public: Nod…
// test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include<vector> #include<string> #include<queue> #include<stack> using namespace std; struct TreeNode { int val; struct TreeNode *left; struc…
Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally identical and the nodes have the same value. Example 1: Input: / \ / \ [,,], [,,] Output: true Example 2:…
A.B 中相同元素:print(set(A)&set(B)) A.B 中不同元素:print(set(A)^set(B))…
24. 两两交换链表中的节点 题目链接:24. 两两交换链表中的节点 题目描述:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换). 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 思路 两两交换节点的重要点在于判断while循环里面的条件,以及cur临时指针应该直向何处? 因此画图理解cur指针的指向以及每一步骤: 拉直后的图像: 由上图知 步骤一…
Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value. 给定两个二叉树,判断是否完全相同. 若两个二叉树完全相同,则每个节点的左子树和右子树必然都相同. 可以采用递归方式,从根节点开始:…
迭代版本用的是二叉树的DFS,中的root->right->left ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定两个二叉树,写一个函数判断他们是否是相同的. 如果两个二叉树的结构相同而且每个节点里面的值也相同,那么认为他们是相同的二叉树. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++…
给你 root1 和 root2 这两棵二叉搜索树. 请你返回一个列表,其中包含 两棵树 中的所有整数并按 升序 排序.. 示例 1: 输入:root1 = [2,1,4], root2 = [1,0,3] 输出:[0,1,1,2,3,4] 示例 2: 输入:root1 = [0,-10,10], root2 = [5,1,7,0,2] 输出:[-10,0,0,1,2,5,7,10] 示例 3: 输入:root1 = [], root2 = [5,1,7,0,2] 输出:[0,1,2,5,7]…