@@ -526,6 +526,60 @@ public static TreeNode getTree13() {
526
526
return t1 ;
527
527
}
528
528
529
+ // 1
530
+ // / \
531
+ // 2 2
532
+ // \ /
533
+ // 4 4
534
+ public static TreeNode getTree14 () {
535
+ TreeNode t1 =new TreeNode (1 );
536
+ TreeNode t2 =new TreeNode (2 );
537
+ TreeNode t3 =new TreeNode (2 );
538
+ TreeNode t4 =new TreeNode (4 );
539
+ TreeNode t5 =new TreeNode (4 );
540
+ TreeNode .connect (t1 ,t2 ,t3 );
541
+ TreeNode .connect (t2 ,null ,t4 );
542
+ TreeNode .connect (t3 ,t5 ,null );
543
+ return t1 ;
544
+ }
545
+
546
+ // 1
547
+ // / \
548
+ // 3 3
549
+ // / /
550
+ // 4 4
551
+ public static TreeNode getTree15 () {
552
+ TreeNode t1 =new TreeNode (1 );
553
+ TreeNode t2 =new TreeNode (3 );
554
+ TreeNode t3 =new TreeNode (3 );
555
+ TreeNode t4 =new TreeNode (4 );
556
+ TreeNode t5 =new TreeNode (4 );
557
+ TreeNode .connect (t1 ,t2 ,t3 );
558
+ TreeNode .connect (t2 ,t4 ,null );
559
+ TreeNode .connect (t3 ,t5 ,null );
560
+ TreeNode root =t1 ;
561
+ return root ;
562
+ }
563
+
564
+ // 1
565
+ // / \
566
+ // 2 2
567
+ // / \ / \
568
+ // 8 4 4 8
569
+ public static TreeNode getTree16 () {
570
+ TreeNode t1 =new TreeNode (1 );
571
+ TreeNode t2 =new TreeNode (2 );
572
+ TreeNode t3 =new TreeNode (2 );
573
+ TreeNode t4 =new TreeNode (4 );
574
+ TreeNode t5 =new TreeNode (4 );
575
+ TreeNode t6 =new TreeNode (8 );
576
+ TreeNode t7 =new TreeNode (8 );
577
+ TreeNode .connect (t1 ,t2 ,t3 );
578
+ TreeNode .connect (t2 ,t6 ,t4 );
579
+ TreeNode .connect (t3 ,t5 ,t7 );
580
+ return t1 ;
581
+ }
582
+
529
583
private boolean isTreeSame (TreeNode p ,TreeNode q ) {
530
584
if (p ==null &&q ==null ) {
531
585
// base case: 1) root is null 2) reaching leaf's child